2011-06-21 18 views
4

他の投稿をSOに表示していますが、この同じ件名についてはjQueryを使用して選択を設定している解決策が見つかりませんでした。jQueryを使用してドロップダウンの選択インデックスを設定

私はこのようになりますドロップダウン持っている:私は$.ajax()成功関数内でドロップダウンをリセットする必要が

<select type="select" id="docsList" name="docsList"> 
    <option id="defaultListItem" value="0">Select a Document...</option> 
    <option value="38">Document 1</option> 
    <option value="35">Document 2</option> 
    <option value="46">Document 3</option> 
    <option value="45">Document 4</option>   
</select> 

を。私は以下を使用しました:

$('select#docsList option:selected').val('0'); 
$('select#docsList').attr('selectedIndex', 0); 

...と他にもいくつかあります。

私はこのコードが問題ないと思っています。私はドロップダウンをリセットしないようにしています。

答えて

14

あなたは事を複雑にしています。 <select>selectedIndexを取得/設定するためにjQueryは必要ありません。 <select>の値を設定する場合

$('#docsList').get(0).selectedIndex = 0; 

、その<option> Sのいずれかではない、<select>.val()を呼び出します。

あなたは $('select#docsList').val('0');がで例を参照してくださいしたい
$('#docsList').val('0'); 
+0

他のすべての仕事も、彼の説明と最も簡単な解決策のためのマットへの誇りです!みんな、ありがとう! – marky

+0

良い投稿、 'selectedIndex'はプロパティであることにも注意してください。 – GoldBishop

+0

@GoldBishopありがとうございました。なぜそれが注目されるべきですか?私はそれが何を追加するかは分かりません。たぶんあなたは精緻化すべきです。 –

3
+0

申し訳ありませんが、これはうまくいきません...少なくとも私にとっては... –

+0

@GuyCohenセレクタのidがselect要素のidと一致していますか? DOMが完全にロードされた後にコードが実行されていることを確認してください。 – tvanfosson

+0

こんにちは、すみません、私は早く返信できませんでした。 私はあなたのサンプルをjsfiddleでテストしました....今私は理由を知っています - 値を1に設定すると(最初の項目以外を選択できるかどうかを確認するために)、値1を2番目の項目に追加しませんでした。 いずれの場合でも、私の作業サンプルは次のとおりです。 $( '#mylistname')。prop( 'selectedIndex'、1); –

7

$('#docsList option[value=0]').attr('selected', 'selected');
これは、選択したオプションとして0に設定された値の属性で<option>を設定します。

4

マットの答えは、小さな欠陥を持っています

$('#docsList').val('0'); 

ないときは、互換モードで上記のコードはIE 9で動作しません。私のために以下のクロスブラウザーが動作しました:

document.getElementById('docsList').selectedIndex = 0; 

正しい方向へのポインタありがとうございます。

+0

これは、任意のブラウザで動作したら驚くでしょう。受け入れられた答えがIE11で – kapa

+0

で動作しない – sarsnake

-1
$(".btn-reset").click(function() { 
    $('#docsList').val('123er43f-12fr-7hgy-ju78-kju345uy65r3'); 
    $('#docsList').trigger('chosen:updated'); 
}); 
関連する問題