Reset option select

1

JS:

function alterarStatusFunction(val){
    if(val =="aprovado"){
        if (confirm('Tem certeza que deseja alterar o status dessa transação para APROVADO?')) {
            document.formtransacoes.submit();
        } else {
            return false;
        }
    }
}

HTML:

<select style="width:200px" onchange="alterarStatusFunction(this.options[this.selectedIndex].title);" name="alteraStatus">
    <option selected="selected" disabled="disabled">- Opções -</option>
    <option title="aprovado" value="aprovado">Marcar como APROVADO</option>
</select>

How can I make the option reset to the first option when the person clicks cancel on the alert that is issued by JS?     

asked by anonymous 18.09.2017 / 21:11

2 answers

0

In this case, as you have the option disabled you can use .selectedIndex = 0 like this:

const select = document.querySelector('select');
select.value = 'aprovado';

setTimeout(() => select.selectedIndex = 0, 2000);
<select style="width:200px" onchange="alterarStatusFunction(this.options[this.selectedIndex].title);" name="alteraStatus">
    <option selected="selected" disabled="disabled">- Opções -</option>
    <option title="aprovado" value="aprovado">Marcar como APROVADO</option>
</select>

<p>Daqui a 2 segundos será selecionado de novo a opção "disabled".</p>

Using your code would look like this:

function alterarStatusFunction(select) {
  var val = select.options[select.selectedIndex].title;
  if (val == "aprovado") {
    if (confirm('Tem certeza que deseja alterar o status dessa transação para APROVADO?')) {
      document.formtransacoes.submit();
    } else {
      return select.selectedIndex = 0;
    }
  }
}
<select style="width:200px" onchange="alterarStatusFunction(this);" name="alteraStatus">
    <option selected="selected" disabled="disabled">- Opções -</option>
    <option title="aprovado" value="aprovado">Marcar como APROVADO</option>
    <option title="desaprovado" value="desaprovado">Marcar como DESAPROVADO</option>
</select>
    
18.09.2017 / 21:21
0

Just reference the select in the function, and use selectedIndex to restore.

function alterarStatusFunction(val){
op = val.options[val.selectedIndex].title;
if(op == "aprovado"){
if (confirm('Tem certeza que deseja alterar o status dessa transação para APROVADO?')) {
document.formtransacoes.submit();
} else {
val.selectedIndex = 0; 
return false;
}
}
}
<select style="width:200px" onchange="alterarStatusFunction(this);" name="alteraStatus">
        <option selected="selected" disabled="disabled">- Opções -</option>
       <option title="aprovado" value="aprovado">Marcar como APROVADO</option>
      
    </select>
    
    
18.09.2017 / 21:25