127 votes

jQuery pour récupérer et définir la valeur de l'option sélectionnée de l'élément html select

J'essaie de récupérer et de définir la valeur sélectionnée d'un élément de sélection (liste déroulante) avec jQuery.

pour la récupération, j'ai essayé $("#myId").find(':selected').val() ainsi que $("#myId").val() mais les deux retournent indéfinis.

Toute information sur ce problème serait très appréciée.

0 votes

si vous utilisez asp .net, les Id peuvent ne pas être les mêmes une fois rendues !

248voto

chris Points 2846

pour obtenir ou définir la propriété selectedIndex de l'élément sélectionné :

$("#select-id").prop("selectedIndex");

$("#select-id").prop("selectedIndex",1);

19 votes

Il est important de noter que la fonction prop() a été mise en œuvre dans la version 1.6 et que les versions antérieures ne disposent pas de cette fonctionnalité.

18 votes

J'aime cette réponse car elle répond en fait à la question de l'accès à l'index, et pas seulement à la valeur.

4 votes

Oui. Je pensais que c'était la question originale.

154voto

redsquare Points 47518

La façon dont vous l'avez fait est correcte pour le moment. Soit l'identifiant de la sélection n'est pas ce que vous dites, soit vous avez des problèmes dans le domaine.

Vérifiez l'Id de l'élément et vérifiez également que votre balisage valide à ici au W3c.

Sans un dom valide, jQuery ne peut pas travailler correctement avec les sélecteurs.

Si les identifiants sont corrects et que votre domaine est validé, la procédure suivante s'applique :

Pour lire, sélectionner la valeur de l'option

$('#selectId').val();

Pour définir la valeur de l'option sélectionnée

$('#selectId').val('newValue');

Pour lire le texte sélectionné

$('#selectId>option:selected').text();

0 votes

@Html.DropDownList("CoinTypes", (SelectList)ViewBag.RequiredLevel, new { @class = "form-control",@style="height : 21px;margin-top : 5px ;"}) mais $('#CoinTypes').val(@ViewBag.CoinType) ; n'effectue pas la sélection.

0 votes

@NithinPaul pas vraiment un commentaire, poser une question qui montre le html pour que quelqu'un puisse essayer de trouver ce qui ne va pas. Je ne sais pas comment vous pouvez vous attendre à ce que quelqu'un trouve la solution à partir d'un code webforms/mvc !

8voto

karim79 Points 178055

$('#myId').val() devrait le faire, à défaut j'essaierais :

$('#myId option:selected').val()

4voto

Jasper Giscombe Points 48

Lors du réglage avec JQM n'oubliez pas de mettre à jour le UI :

$('#selectId').val('newValue').selectmenu('refresh', true);

0 votes

Merci pour cette pépite - je me demandais pourquoi la nouvelle valeur n'apparaît pas à l'écran après avoir modifié le selectedIndex avec $("#slot-choice").prop("selectedIndex", n).

3voto

Rigobert Song Points 1806

$("#myId").val() devrait fonctionner si myid est l'id de l'élément sélectionné !

Cela permet de définir l'élément sélectionné : $("#myId").val('VALUE');

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