23

選択ボックスにオプションを動的に入力しています。これを行うとき、選択ボックスの値を最初のオプションの値にする必要があります(必要に応じて「デフォルトオプション」)。本当に簡単に聞こえますが、私はそれを機能させることができません。

var myElement = $('select[name="myName"]');

....次の3つのバリエーションを試しました

// myElement.find('option').first().prop('selected', 'selected');
// myElement.val(myElement.find('options').first().val());
myElement.prop('selectedIndex', 0);

...しかし、次の行では空白のアラートが表示されます

alert(myElement.val());

どこが間違っていますか?

4

4 に答える 4

37

オプションはオプションでなければなりません

myElement.find('option:eq(0)').prop('selected', true);

オプションのセレクターを使用してeq、最初のオプションを選択できます。

最初のオプションの値を知っている場合。次に、簡単に行うことができます

myElemeent.val('first value') // Which selects the option by default

適切な場所で呼び出していない限り、試した 2 番目のケースは機能するはずです。すなわち; ajax 応答が完了するのを待っています。

doneまたはsuccess(非推奨の)ハンドラ内で呼び出してみてください

于 2013-08-23T00:55:13.203 に答える
6

「オプション」の「s」を削除してください。

myElement.val(myElement.find('option').first().val());

ワーキングjsFiddle

于 2013-08-23T00:54:44.330 に答える