J'ai deux select
boîtes HTML . J'ai besoin de réinitialiser une select
boîte lorsque je fais une sélection dans une autre.
<select id="name" >
<option value="">select all</option>
<option value="1">Text 1</option>
<option value="2">Text 2</option>
<option value="3">Text 3</option>
</select>
<select id="name2" >
<option value="">select all</option>
<option value="1">Text 1</option>
<option value="2">Text 2</option>
<option value="3">Text 3</option>
</select>
Lorsque je sélectionne une option de la première select
(c'est-à-dire id="name"
), je dois réinitialiser la seconde select
à select all
; de même, lorsque je sélectionne une option de la seconde select
(c'est-à-dire id="name2"
), je dois réinitialiser la première select
à select all
.
Comment puis je faire ça?
javascript
jquery
Anish
la source
la source
Réponses:
Quelque chose comme ça devrait faire l'affaire: https://jsfiddle.net/TmJCE/898/
la source
<button>
élément, veillez à ne pas définirtype="reset"
. Cela n'a pas fonctionné pour moi jusqu'à ce que je définisse le type surbutton
select
la valeur fournie.select.prop('selectedIndex', 0)
le réinitialisera la première option,select.prop('selectedIndex', 1)
le définira sur la deuxième option.Si vous souhaitez simplement réinitialiser l'élément select à sa première position, le moyen le plus simple peut être:
Pour réinitialiser tous les éléments sélectionnés dans le document:
EDIT: Pour clarifier selon un commentaire ci-dessous, cela réinitialise l'élément de sélection à sa première entrée vide et uniquement si une entrée vide existe dans la liste.
la source
value=""
peut apparaître dans n'importe quel ordre. 2) Une option sans attribut de valeur, c'est-à<option></option>
- dire n'est pas la même chose qu'une option avec un attribut de valeur de chaîne vide, c'est-à-dire<option value=""></option>
, et vous avez clairement indiqué que nous avons besoin de lavalue=""
partie 3) Même s'il n'y en a pas<option>
avec une valeur de chaîne vide; le réglage.val('')
"affectera le changement", la sélection semblera devenir vide, n'est-ce pas? Au moins dans mon Chrome ...Comme l'a souligné @PierredeLESPINAY dans les commentaires, ma solution d'origine était incorrecte - elle réinitialiserait la liste déroulante sur l'option la plus haute, mais uniquement parce que la
undefined
valeur de retour était résolue à l'index 0.Voici une solution correcte, qui prend
selected
en compte la propriété:DÉMO : http://jsfiddle.net/weg82/257/
Réponse originale - INCORRECT
Dans jQuery 1.6+, vous devez utiliser la
.prop
méthode pour obtenir la sélection par défaut:Pour le réinitialiser dynamiquement lorsque la première liste déroulante change, utilisez l'
.change
événement:la source
$('#name2').val( $(this).prop('defaultSelected') );
$(this)
fait référence à$('#name')
, pas$('#name2')
, donc nondefaultSelected
est une<option>
propriété, sera toujours de retourundefined
un<select>
Utilisez cette option si vous souhaitez réinitialiser la sélection sur l'option qui a l'attribut "sélectionné". Fonctionne de manière similaire à la fonction javascript intégrée form.reset () pour sélectionner.
la source
Cela m'aide beaucoup.
la source
Voici comment je l'ai fait fonctionner si vous voulez juste le ramener à votre première option, par exemple "Choisissez une option" "Select_id_wrap" est évidemment le div autour de la sélection, mais je veux juste que cela soit clair au cas où il aurait toute incidence sur la façon dont cela fonctionne. Le mien se réinitialise à une fonction de clic, mais je suis sûr que cela fonctionnera également à l'intérieur d'un changement ...
la source
Utilisez le code ci-dessous. Voyez-le fonctionner ici http://jsfiddle.net/usmanhalalit/3HPz4/
la source
Cela peut également être utilisé
la source
C'est le moyen le plus flexible / réutilisable de réinitialiser toutes les cases de sélection de votre formulaire.
la source
Voici comment le gérer avec un élément d'option aléatoire défini comme valeur par défaut (dans ce cas, Texte 2 est la valeur par défaut):
la source
Vous pouvez essayer ceci:
la source
J'ai eu un problème en utilisant la propriété defaultSelected dans la réponse de @Jens Roland dans jQuery v1.9.1. Une manière plus générique (avec de nombreuses sélections dépendantes) serait de mettre un attribut de données par défaut dans vos sélections dépendantes, puis de les parcourir lors de la réinitialisation.
Et le javascript ...
Voir http://jsfiddle.net/8hvqN/ pour une version fonctionnelle de ce qui précède.
la source
J'ai créé une nouvelle option dans la balise de sélection qui a une valeur de chaîne vide ("") et utilisé:
la source
Utilisez jquery pour lier l'événement onchange à sélectionner, mais vous n'avez pas besoin de créer un autre
$(this)
objet jquery.la source
Utilisez ce code pour réinitialiser tous les champs de sélection à l'option par défaut, où l'attribut sélectionné est défini.
la source
Voici la meilleure solution que j'utilise. Cela s'appliquera pour plus d'une slectbox
la source
La configuration de l'option 1 dans l'élément de sélection peut être effectuée par ce segment. Pour le montrer visuellement, vous avez tp add .trigger ('change') à la fin.
la source