2011-04-27 4 views
34

Quel est le problème avec ce code?jQuery: définir la valeur sélectionnée de la liste déroulante?

jQuery

$(document).ready(function() { 
    $("#routetype").val('quietest'); 
)}; 

HTML

<select id="routetype" name="routetype"> 
    <option value="fastest">Fastest</option> 
    <option selected="true" value="balanced">Balanced</option> 
    <option value="quietest">Quietest</option> 
</select> 

Fiddle

Il me donne 'équilibré' que l'option choisie, pas 'plus silencieux'.

+6

Vous devez sélectionner jQuery dans le menu déroulant à gauche et vous avez une erreur de syntaxe parce que le '$ (document) .ready' doit se terminer par' }); 'not')}; 'Voir: http://jsfiddle.net/x3UyB/2/ – mVChr

+1

@mVChr vous devriez publier cela comme une réponse =) – LostLin

+0

@mVChr merci, s'il vous plaît poster comme une réponse :) – simon

Répondre

31

Vous devez sélectionner jQuery dans le menu déroulant à gauche et vous avez une erreur de syntaxe car le $(document).ready doit se terminer par }); et non )};Check this link.

+4

Merci. En fait, le problème venait du fait que je travaillais avec jQuery Mobile et que vous deviez appeler '$ (" # routetype "). Selectmenu ('refresh');' aussi pour mettre à jour ce qui est affiché. – simon

+0

@simon, merci! Ton commentaire m'a sauvé beaucoup d'ennuis. – you786

65

RÉPONSE À JOUR:

ancienne réponse, la méthode correcte est aujourd'hui d'utiliser .prop() de jQuery. IE, element.prop("selected", true)

RÉPONSE VIEUX:

Utilisez ce lieu:

$("#routetype option[value='quietest']").attr("selected", "selected"); 

Fiddle'd:http://jsfiddle.net/x3UyB/4/

+0

Et si je veux utiliser une variable au lieu d'une valeur codée en dur (comme "quietest"? –

+0

@Kevin Vous pouvez toujours faire l'option $ ("# routetype option"). Each() 'pour comparer les valeurs déroulantes, ou juste $ (" # routetype option [value = '"+ option_value +"'] ");' – mattsven

+0

@mattsven, je suis sélectionné = 'sélectionné' sur deux options de cette façon. juste un FYI. –

3

Vous pouvez sélectionner la valeur de l'option déroulante par nom

jQuery("#option_id").find("option:contains('Monday')").each(function() 
{ 
if(jQuery(this).text() == 'Monday') 
{ 
    jQuery(this).attr("selected","selected"); 
    } 
}); 
Questions connexes