HTML選択要素の選択されたオプション値を取得および設定するためのjQuery


126

jQueryを使用して、select要素(ドロップダウンリスト)の選択された値を取得および設定しようとしています。

私が試してみ$("#myId").find(':selected').val()ました$("#myId").val()が、両方とも未定義を返します。

この問題への洞察は大歓迎です。


asp .netを使用している場合、一度レンダリングされると、それらのIDは同じにならない可能性があります。
Rigobert Song、

回答:


154

あなたがそれを持っている方法は、現時点では正しいです。selectのidがあなたの言うことではないか、domに問題があります。

要素のIDを確認し、また、であなたのマークアップを検証を確認し、ここ W3Cで。

有効なdomがないと、jQueryはセレクターで正しく動作できません。

IDが正しく、DOMが検証する場合、以下が適用されます。

選択オプション値を読み取るには

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

選択オプション値を設定するには

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

選択したテキストを読むには

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

@ Html.DropDownList( "CoinTypes"、(SelectList)ViewBag.RequiredLevel、new {@class = "form-control"、@ style = "height:21px; margin-top:5px;"})が$( '#CoinTypes ').val(@ ViewBag.CoinType); は選択していません
Nithin Paul、2015

@NithinPaulは実際にはコメントではなく、htmlを示す質問をして、誰かが実際に何が問題なのかを試し、解決できるようにします。誰かがいくつかのwebforms / mvcコードからそれを解決することを期待できるかわかりません!
redsquare 2015

248

select要素の実際のselectedIndexプロパティを取得/設定するには、以下を使用します。

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

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

19
以前のバージョンにはこの機能がないため、prop()機能はバージョン1.6で実装されたことに注意することが重要です。
RobB

18
この答えは、値だけでなく、インデックスへのアクセスに関する質問にも実際に答えるため、気に入っています。
Pablo Diaz

4
うん。元の質問だと思いました。
Jack Holt

おそらく同じ構文でattrを使用して、大丈夫でしょう。
Yitzhak 2013年

7
@ M.YitzhakSamuel .attr()および.prop()同義語ではありません。それは例えば、属性もプロパティである特定の場合に動作する.attr('id')に等しいです.prop('id')。この場合、.prop('selectedIndex')はに等しい.get(0).selectedIndexです。
WynandB 2013

7

$('#myId').val() 私が試してみると失敗して、それを行うべきです:

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

4

で設定するJQM場合は、必ず更新してUIください。

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

このナゲットをありがとう-なぜ$( "#slot-choice")。prop( "selectedIndex"、n)でselectedIndexを変更した後、新しい値が画面に表示されないのか疑問に思いました。
Samik R

3

$("#myId").val()myid選択要素IDであれば動作するはずです!

これにより、選択したアイテムが設定されます。 $("#myId").val('VALUE');


1

次のように、SELECTタグを使用してドロップダウンリストを作成したとします。

<select id="Country">

次に、JQueryを使用してドロップダウンから選択した値を確認したい場合は、次の行を入力してその値を取得します。

var result= $("#Country option:selected").text();

正常に動作します。


0

私はこれが古いことを知っていますが、Razorを使用したことがあるので、どんなに頑張っても動作しませんでした。属性に「text」と「html」のどちらを使用しても、「undefined」として戻ってきました。最後に、「data-value」属性をオプションに追加しましたが、それは問題なく読み取れました。

 <option value="1" data-value="MyText">MyText</option>

 var DisplayText = $(this).find("option:selected").attr("data-value");

0

$( "#myId option:selected").text(); ドロップダウン要素で選択したテキストが表示されます。どちらの方法でも、.val()に変更できます。それの価値を得るために。以下のコーディングを確認してください

<select id="myId">
    <option value="1">Mr</option>
    <option value="2">Mrs</option>
    <option value="3">Ms</option>`
    <option value="4">Dr</option>
    <option value="5">Prof</option>
</select>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.