Eu tenho o seguinte <select>
elemento HTML :
<select id="leaveCode" name="leaveCode">
<option value="10">Annual Leave</option>
<option value="11">Medical Leave</option>
<option value="14">Long Service</option>
<option value="17">Leave Without Pay</option>
</select>
Usando uma função JavaScript com o leaveCode
número como parâmetro, como faço para selecionar a opção apropriada na lista?
javascript
html
dom
brasskazoo
fonte
fonte
Respostas:
Você pode usar esta função:
fonte
element.dispatchEvent(new Event('change'));
Se você estiver usando o jQuery, também poderá fazer o seguinte:
Isso selecionará
<option>
o valor 14.Com Javascript simples, isso também pode ser alcançado com dois
Document
métodos :Com
document.querySelector
, você pode selecionar um elemento com base em um seletor de CSS:Usando a abordagem mais estabelecida com
document.getElementById()
, que, como o nome da função implica, permite selecionar um elemento com base emid
:Você pode executar o código abaixo capturado para ver esses métodos e a função jQuery em ação:
Mostrar snippet de código
fonte
fonte
Não respondendo à pergunta, mas você também pode selecionar por índice, onde i é o índice do item que você deseja selecionar:
Você também pode percorrer os itens a serem selecionados pelo valor de exibição com um loop:
fonte
Eu comparei os diferentes métodos:
Comparação das diferentes maneiras de definir um valor de um select com JS ou jQuery
código:
Saída em uma seleção com ~ 4000 elementos:
Com o Firefox 10. Nota: O único motivo pelo qual fiz esse teste foi porque o jQuery teve um desempenho muito ruim em nossa lista com ~ 2000 entradas (eles tinham textos mais longos entre as opções). Tivemos um atraso de aproximadamente 2 s após um val ()
Observe também: estou definindo um valor dependendo do valor real, não do valor do texto.
fonte
Isso deve definir a seleção para "Férias anuais"
fonte
Tentei as soluções baseadas em JavaScript / jQuery acima, como:
e
em um aplicativo AngularJS, onde havia um requisito elemento <select> .
Nenhum deles funciona, porque a validação do formulário AngularJS não é acionada. Embora a opção correta tenha sido selecionada (e seja exibida no formulário), a entrada permaneceu inválida ( ng-pristine e ng-invalid classes ainda estão presentes).
Para forçar a validação do AngularJS, chame jQuery change () depois de selecionar uma opção:
e
fonte
fonte
A maneira mais fácil se você precisar:
1) Clique em um botão que define a opção de seleção
2) Vá para outra página, onde a opção de seleção é
3) Tenha esse valor de opção selecionado em outra página
1) links de seu botão (por exemplo, na página inicial)
(onde contact.php é sua página com opções selecionadas. Observe que o URL da página possui? option = 1 ou 2)
2) coloque esse código em sua segunda página (meu caso contact.php )
3) selecione o valor da opção, dependendo do botão clicado
.. e assim por diante.
Portanto, é uma maneira fácil de passar o valor para outra página (com lista de opções de seleção) por meio de GET em url. Sem formulários, sem IDs .. apenas 3 etapas e funciona perfeitamente.
fonte
Por que não adicionar uma variável ao ID do elemento e torná-lo uma função reutilizável?
fonte
Suponha que seu formulário seja nomeado form1 :
fonte
Deve ser algo nesse sentido:
fonte
Se você usa PHP, pode tentar algo como isto:
fonte
Você provavelmente quer isso:
OU
fonte
using JavaScript
.fonte
Receio não poder testar isso no momento, mas, no passado, acredito que tive que atribuir um ID a cada tag de opção e, em seguida, fiz algo como:
Se isso não funcionar, talvez você esteja mais perto de uma solução: P
fonte
select()
método (ele não define nenhum método adicional sobre o conjunto padrão em todos os elementos HTML). No entanto, você pode definir aselected
propriedade como true.