J'ai l' <select>
élément HTML suivant :
<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>
En utilisant une fonction JavaScript avec le leaveCode
nombre comme paramètre, comment puis-je sélectionner l'option appropriée dans la liste?
javascript
html
dom
brasskazoo
la source
la source
Réponses:
Vous pouvez utiliser cette fonction:
la source
element.dispatchEvent(new Event('change'));
Si vous utilisez jQuery, vous pouvez également le faire:
Cela sélectionnera
<option>
la valeur 14.Avec du Javascript simple, cela peut également être réalisé avec deux
Document
méthodes :Avec
document.querySelector
, vous pouvez sélectionner un élément basé sur un sélecteur CSS:En utilisant l'approche plus établie avec
document.getElementById()
, cela vous permettra, comme le nom de la fonction l'indique, de sélectionner un élément en fonction de sonid
:Vous pouvez exécuter le code ci-dessous coupé pour voir ces méthodes et la fonction jQuery en action:
Afficher l'extrait de code
la source
la source
Ne répondant pas à la question, mais vous pouvez également sélectionner par index, où i est l'index de l'élément que vous souhaitez sélectionner:
Vous pouvez également parcourir les éléments à sélectionner par valeur d'affichage avec une boucle:
la source
J'ai comparé les différentes méthodes:
Comparaison des différentes façons de définir la valeur d'une sélection avec JS ou jQuery
code:
Sortie sur une sélection avec ~ 4000 éléments:
Avec Firefox 10. Remarque: La seule raison pour laquelle j'ai fait ce test, c'est parce que jQuery s'est comporté très mal sur notre liste avec environ 2000 entrées (ils avaient des textes plus longs entre les options). Nous avons eu environ 2 s de retard après un val ()
Remarque également: je fixe la valeur en fonction de la valeur réelle, pas de la valeur du texte.
la source
Cela devrait définir la sélection sur "Congé annuel"
la source
J'ai essayé les solutions basées sur JavaScript / jQuery ci-dessus, telles que:
et
dans une application AngularJS, où il y avait un requis élément <select> .
Aucun d'entre eux ne fonctionne, car la validation du formulaire AngularJS n'est pas déclenchée. Bien que la bonne option ait été sélectionnée (et s'affiche dans le formulaire), l'entrée est restée invalide ( ng-vierge et ng-invalide classes sont toujours présentes).
Pour forcer la validation AngularJS, appelez jQuery change () après avoir sélectionné une option:
et
la source
la source
La manière la plus simple si vous devez:
1) Cliquez sur un bouton qui définit l'option de sélection
2) Allez sur une autre page, où l'option de sélection est
3) Faites sélectionner la valeur de cette option sur une autre page
1) les liens de vos boutons (par exemple, sur la page d'accueil)
(où contact.php est votre page avec des options de sélection. Notez que l'url de la page a? option = 1 ou 2)
2) mettez ce code sur votre deuxième page (mon cas contact.php )
3) sélectionnez la valeur de l'option, en fonction du bouton cliqué
.. etc.
C'est donc un moyen facile de passer la valeur à une autre page (avec une liste d'options sélectionnée) via GET dans l'url. Pas de formulaires, pas d'identifiants .. juste 3 étapes et cela fonctionne parfaitement.
la source
Pourquoi ne pas ajouter une variable pour l'ID de l'élément et en faire une fonction réutilisable?
la source
Supposons que votre formulaire soit nommé form1 :
la source
Devrait être quelque chose dans ce sens:
la source
Si vous utilisez PHP, vous pouvez essayer quelque chose comme ceci:
la source
Vous le souhaitez très probablement:
OU
la source
using JavaScript
.la source
Je crains de ne pas pouvoir tester cela pour le moment, mais dans le passé, je pense que je devais donner à chaque étiquette d'option un ID, puis j'ai fait quelque chose comme:
Si cela ne fonctionne pas, cela vous rapprochera peut-être d'une solution: P
la source
select()
méthode (il ne définit pas de méthodes supplémentaires sur l'ensemble standard sur tous les éléments HTML). Cependant, vous pouvez définir laselected
propriété sur true.