237 votes

Meilleur moyen de désélectionner un <select> dans jQuery?

 <select size="2">
<option selected="selected">Input your option</option>
<option>Input your option</option>
</select>
 

Quelle est la meilleure façon d'utiliser jQuery pour désélectionner élégamment l'option?

379voto

Ei Maung Points 2234

Utilisez removeAttr ...

 $("option:selected").removeAttr("selected");
 

Ou Prop

 $("option:selected").prop("selected", false)
 

180voto

Jon Points 194296

Il y a beaucoup de réponses ici, mais malheureusement, toutes sont assez anciennes et reposent donc sur attr / removeAttr ce qui n'est vraiment pas la solution.

@coffeeyesplease mentionne correctement qu'une bonne solution inter-navigateur est d'utiliser

 $("select").val([]);
 

Une autre bonne solution inter-navigateur est

 // Note the use of .prop instead of .attr
$("select option").prop("selected", false);
 

Vous pouvez le voir exécuter un auto-test ici . Testé sur IE 7/8/9, FF 11, Chrome 19.

25voto

coffeeyesplease Points 725

C’est un fait un moment depuis que demandé et je n’ai pas testé sur les navigateurs plus anciens, mais il me semble beaucoup plus simple réponse est

.Val() fonctionne pour sélectionner aussi bien http://api.jquery.com/val/

19voto

thetoolman Points 996

Réponses jusqu’ici seulement travaillent pour plusieurs sélectionne dans IE6/7 ; pour le plus courant non-multi select, vous devez utiliser :

Ceci est expliqué dans le post relié par flyfishr64. Si vous le regardez, vous verrez comment il existe 2 cas - multi / non-multi. Il n’y a rien ne vous empêche de chaning les deux pour une solution complète :

5voto

Jeff Paquette Points 5512

Un rapide google trouvé ce post qui explique comment faire ce que vous voulez pour les listes de sélection simples ou multiples dans IE. La solution semble assez élégante ainsi :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X