web-dev-qa-db-ja.com

JQueryで<select>の最初のオプションを選択させる方法

どのように私はjQueryで選択の最初のオプションを作るのですか?

<select id="target">
  <option value="1">...</option>
  <option value="2">...</option>
</select>
502
omg
$("#target").val($("#target option:first").val());
865
David Andres

あなたはこれを試すことができます

$("#target").prop("selectedIndex", 0);
149
Esben
// remove "selected" from any options that might already be selected
$('#target option[selected="selected"]').each(
    function() {
        $(this).removeAttr('selected');
    }
);


// mark the first option as selected
$("#target option:first").attr('selected','selected');
105
user149513

使うとき

$("#target").val($("#target option:first").val());

最初のオプション値がnullの場合、これはChromeとSafariでは機能しません。

私は好きです

$("#target option:first").attr('selected','selected');

すべてのブラウザで機能するからです。

63
Jimmy Huang

Select入力の値を変更したりselected属性を調整したりすると、DOM要素のデフォルトのselectedOptionsプロパティが上書きされ、resetイベントが呼び出された形式では要素が正しくリセットされない可能性があります。

JQueryのpropメソッドを使って、必要なオプションをクリアして設定します。

$("#target option:selected").prop("selected", false);
$("#target option:first").prop("selected", "selected");
41
James Lee Baker
$("#target")[0].selectedIndex = 0;
31
danactive

1つの微妙な点私は - 私は - 彼らが選択した値を正しく変更しても、彼らがユーザーに見える要素を更新しないということです更新された要素の横にあるを確認してください。

最後に.change()呼び出しをチェーンすると、UIウィジェットも更新されます。

$("#target").val($("#target option:first").val()).change();

(jQuery MobileとChromeデスクトップ上のボックスを使用しているときにこれに気付いたので、どこでもそうではないかもしれません)。

18
Bradley Bossard

オプションを無効にしている場合は、 not([disabled]) を追加して選択しないようにすると、次のようになります。

$("#target option:not([disabled]):first").attr('selected','selected')
15
Melanie

(複数の選択された要素の)値をリセットするもう1つの方法はこれです。

$("selector").each(function(){

    /*Perform any check and validation if needed for each item */

    /*Use "this" to handle the element in javascript or "$(this)" to handle the element with jquery */

    this.selectedIndex=0;

});
14
$('#newType option:first').prop('selected', true);
8
FFFFFF

そのような単純な:

$('#target option:first').prop('selected', true);
7
Ramon Schmidt

選択された属性が既に存在する場合、attr selectedの設定だけでは機能しないことがわかりました。今使用しているコードでは、最初に選択した属性の設定を解除してから、最初のオプションを選択します。

$('#target').removeAttr('selected').find('option:first').attr('selected', 'selected');
6
Francis Lewis

これが私のやり方です。

$("#target option")
    .removeAttr('selected')
    .find(':first')     // You can also use .find('[value=MyVal]')
        .attr('selected','selected');
5
Fabrizio

それぞれの機能はおそらく必要ではありませんが...

$('select').each(function(){
    $(this).find('option:first').prop('selected', 'selected');
});

私のために働きます。

4
Darth Jon

最初のオプションをデフォルトとして使うつもりなら、

<select>
    <option value="">Please select an option below</option>
    ...

それならあなたはただ使うことができます:

$('select').val('');

それは素敵でシンプルです。

2
Gary - ITB

これは私にとっては最後にトリガー( 'change')を使うことだけでうまくいきました。

$("#target option:first").attr('selected','selected').trigger('change');
2

つかいます:

$("#selectbox option:first").val()

this JSFiddle で単純な作業を見つけてください。

1
Chetan

James Lee Bakerの返事を受けて、このソリューションはブラウザサポートへの依存を取り除いているので好む:first:selected ...

$('#target').children().prop('selected', false);
$($('#target').children()[0]).prop('selected', 'selected');
1
Matthew Scott

私にとっては、次のコードを追加したときにしか機能しませんでした。

.change();

私は次のコードを追加したときにしかうまくいきませんでした。フォームを「リセット」したい、つまりフォームのすべての選択の最初のオプションをすべて選択したかったので、次のコードを使用しました。

$('form').find('select').each(function(){ $(this).val($("select option:first").val()); $(this).change(); });

1
Jean Douglas

私にとっては、次のコードを追加したときにだけうまくいきました。

$('#target').val($('#target').find("option:first").val());
0
Muhammad Qasim

これは私のために働いた!

$("#target").prop("selectedIndex", 0);
0
Archana Kamath

Select要素のjQueryオブジェクトを保存している場合:

var jQuerySelectObject = $("...");

...

jQuerySelectObject.val(jQuerySelectObject.children().eq(0).val());
0
Daniel

$('select#id').val($('#id option')[index].value)

id を特定のselectタグidに、 index を選択したい特定の要素に置き換えます。

すなわち.

<select class="input-field" multiple="multiple" id="ddlState" name="ddlState">
                                        <option value="AB">AB</option>
                                        <option value="AK">AK</option>
                                        <option value="AL">AL</option>
</select>

だからここで最初の要素の選択のために私は次のコードを使用します:

$('select#ddlState').val($('#ddlState option')[0].value)
0
Hitesh Kalwani

あなたはそれを使うことによってdropdownから任意のオプションを選択することができます。

// 'N' can by any number of option.  // e.g.,  N=1 for first option
$("#DropDownId").val($("#DropDownId option:eq(N-1)").val()); 
0
Arsman Ahmad

ECMAScript 6 と共にjQueryを使って、この最善のアプローチをチェックしてください。

$('select').each((i, item) => {
  var $item = $(item);
  $item.val($item.find('option:first').val()); 
});
0
jdnichollsc
$("#target").val(null);

クロムでうまく働いた

0
Krishna Murthy