2011-04-27 32 views
34

このコードで何が問題になっていますか?jQuery:ドロップダウンリストの選択された値を設定しますか?

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

それは私に選択されたオプションではなく、 '静かな' などの 'バランス' を提供します。

+6

をドロップダウンオプション値を選択することができますし、構文エラーを持っているので、 '$(文書).ready'がで終わらなければなりません' }); 'not')}; '参照:http://jsfiddle.net/x3UyB/2/ – mVChr

+1

@mVChrあなたは答えとして投稿する必要があります。) – LostLin

+0

@mVChrありがとう、回答として投稿してください:) – simon

答えて

31

との末尾が});でないため、構文エラーです。)};Check this link.

+4

ありがとうございます。実際問題はjQuery Mobileで作業していて、$( "#routetype")。selectmenu( 'refresh');を呼び出して表示されている内容を更新する必要があるためです。 – simon

+0

@imon、ありがとう!あなたのコメントは私に多くの問題を救った。 – you786

65

UPDATED ANSWER:

古い答えは、正しい方法は、最近jQueryの.prop()を使用することです。 IE、element.prop("selected", true)

OLD ANSWER:

利用代わりに、この:

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

Fiddle'd:あなたは左側のドロップダウンでのjQueryを選択する必要がhttp://jsfiddle.net/x3UyB/4/

+0

ハードコーディングされた値( "quietest"など)の代わりに変数を使用する場合はどうすればよいですか? –

+0

@Kevinドロップダウンの値を比較するには '$("#routetype option ")。each()'を実行するか、 '$(" routeetype option [value = '"+ option_value +"'] ");' – mattsven

+0

@mattsven、私は選択された=この方法で2つのオプションで '選択'。ちょうどFYI。 –

3

あなたは、左側のドロップダウンでのjQueryを選択する必要があり、名前で

jQuery("#option_id").find("option:contains('Monday')").each(function() 
{ 
if(jQuery(this).text() == 'Monday') 
{ 
    jQuery(this).attr("selected","selected"); 
    } 
}); 
関連する問題