Sélectionner une option dans un select avec jQuery

Mars 2013

jQuery permet de modifier la valeur sélectionnée dans une liste déroulante <select>. On peut sélectionner la valeur selon différents critères comme la valeur de l'option, ou sa position dans la liste.

Voici le code HTML d'exemple qu'on va utiliser :

<!doctype html>
<html>
<head>
	<meta charset="utf-8">
	<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
	<select id="moteur" name="moteur">
		<option value="">--</option>
		<option value="electrique">Électrique</option>
		<option value="essence">Essence</option>
		<option value="diesel">Diesel</option>
		<option value="vapeur">Vapeur</option>
	</select>
	<button id="select-essence">Select: essence</button>
	<button id="select-3">Select: #3</button>
</body>
</html>

Sélectionner une option par sa valeur

$('#select-essence').click(function(e){
	$('#moteur option[value="essence"]').prop('selected', true);
});

J'ai utilisé la fonction .prop pour sélectionner l'option, c'est la méthode recommandée par la documentation depuis la version jQuery 1.6. Si vous utilisez une version plus ancienne, utilisez la fonction attr : $(...).attr('selected', 'selected');.

Cette page peut vous intéresser : fond dégradé sur excel à lire tout de suite !

Sélectionner une option en fonction de sa position

L'autre méthode est de choisir par exemple la première option, la dernière, ou la nième, grâce à eq() qui pose une condition sur l'index de l'élément :

$('#select-3').click(function(e){
	$('#moteur option:eq(3)').prop('selected', true);
});

Encore faim ? allez lire ça : convertir une vidéo en gif animé !

8 commentaires :
commentaire n°2766 par cristof
cristof samedi 8 mars 2014, 00:16
Marche pas....
commentaire n°2795 par tk30
tk30 vendredi 11 avril 2014, 15:19
Marche pas :(
commentaire n°2815 par Sykun
Sykun mercredi 14 mai 2014, 10:20
Pour ma part sa marche très bien avec prop.
J'ai utilisé sous cette forme :
$('#id_du_select>#id_de_loption').prop('selected', true);
mais les propriété value= et eq(3) fonctionne également.

Merci pour la solution.
commentaire n°2861 par mance
mance mardi 12 août 2014, 16:54
sympa sympa.



...

ai passé dix minutes à jouer avec le pti satellite à gauche. J'aime.
commentaire n°2872 par Mjackson
Mjackson vendredi 22 août 2014, 00:50
Bonjour, est ce que quelqu'un connaitrait un plugin Jquery, ou tout simplement le bout de code permettant de faire la meme chose que ce site : http://www.rennes-taxi.fr/ en ce qui concerne les selects du code HTML, il faut aller au milieu de la page, merci d'avance !

Mance, grâce à toi j'ai également perdu 10 min de ma vie, mais j'adore !
commentaire n°2878 par Galdon
Galdon dimanche 7 septembre 2014, 01:24
Je ne vois aucun effet particulier au milieu de la page :s. Tu parles du formulaire de réservation qui s'affiche quand on clic sur "Comment réserver ?"
commentaire n°3080 par Akram G
Akram G vendredi 22 mai 2015, 11:44
The code is not working correctly:
you have two other solutions:
1/ (use 'attr' instead of prop)
$('#select-essence').click(function(e){
    $('#moteur option[value="essence"]').attr('selected', 'selected');
});
2/ use val (easier)
$('#select-essence').click(function(e){
    $('#moteur').val('essence');
});
commentaire n°3233 par Abdoul1605LeNigérien
Abdoul1605LeNigérien mardi 26 janvier 2016, 01:32
Merci de m'avoir évité de trop reflechir.
Marche correctement.
Akram G, the first code works correctly, take a look at your version of jquery
facultatif
Facebook Twitter RSS Email
Forum Excel
Venez découvrir le nouveau forum excel question/réponse à la stackoverflow.com !
Forum Excel
hit parade n'en a rien a foutre du W3C Positionnement et Statistiques Gratuites Vincent Paré