どのように私はjQueryで選択の最初のオプションを作るのですか?
<select id="target">
<option value="1">...</option>
<option value="2">...</option>
</select>
$("#target").val($("#target option:first").val());
あなたはこれを試すことができます
$("#target").prop("selectedIndex", 0);
// 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');
使うとき
$("#target").val($("#target option:first").val());
最初のオプション値がnullの場合、これはChromeとSafariでは機能しません。
私は好きです
$("#target option:first").attr('selected','selected');
すべてのブラウザで機能するからです。
Select入力の値を変更したりselected属性を調整したりすると、DOM要素のデフォルトのselectedOptionsプロパティが上書きされ、resetイベントが呼び出された形式では要素が正しくリセットされない可能性があります。
JQueryのpropメソッドを使って、必要なオプションをクリアして設定します。
$("#target option:selected").prop("selected", false);
$("#target option:first").prop("selected", "selected");
$("#target")[0].selectedIndex = 0;
1つの微妙な点私は - 私は - 彼らが選択した値を正しく変更しても、彼らがユーザーに見える要素を更新しないということです更新された要素の横にあるを確認してください。
最後に.change()呼び出しをチェーンすると、UIウィジェットも更新されます。
$("#target").val($("#target option:first").val()).change();
(jQuery MobileとChromeデスクトップ上のボックスを使用しているときにこれに気付いたので、どこでもそうではないかもしれません)。
オプションを無効にしている場合は、 not([disabled]) を追加して選択しないようにすると、次のようになります。
$("#target option:not([disabled]):first").attr('selected','selected')
(複数の選択された要素の)値をリセットするもう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;
});
$('#newType option:first').prop('selected', true);
そのような単純な:
$('#target option:first').prop('selected', true);
選択された属性が既に存在する場合、attr selectedの設定だけでは機能しないことがわかりました。今使用しているコードでは、最初に選択した属性の設定を解除してから、最初のオプションを選択します。
$('#target').removeAttr('selected').find('option:first').attr('selected', 'selected');
これが私のやり方です。
$("#target option")
.removeAttr('selected')
.find(':first') // You can also use .find('[value=MyVal]')
.attr('selected','selected');
それぞれの機能はおそらく必要ではありませんが...
$('select').each(function(){
$(this).find('option:first').prop('selected', 'selected');
});
私のために働きます。
最初のオプションをデフォルトとして使うつもりなら、
<select>
<option value="">Please select an option below</option>
...
それならあなたはただ使うことができます:
$('select').val('');
それは素敵でシンプルです。
これは私にとっては最後にトリガー( 'change')を使うことだけでうまくいきました。
$("#target option:first").attr('selected','selected').trigger('change');
James Lee Bakerの返事を受けて、このソリューションはブラウザサポートへの依存を取り除いているので好む:first:selected ...
$('#target').children().prop('selected', false);
$($('#target').children()[0]).prop('selected', 'selected');
私にとっては、次のコードを追加したときにしか機能しませんでした。
.change();
私は次のコードを追加したときにしかうまくいきませんでした。フォームを「リセット」したい、つまりフォームのすべての選択の最初のオプションをすべて選択したかったので、次のコードを使用しました。
$('form').find('select').each(function(){ $(this).val($("select option:first").val()); $(this).change(); });
私にとっては、次のコードを追加したときにだけうまくいきました。
$('#target').val($('#target').find("option:first").val());
これは私のために働いた!
$("#target").prop("selectedIndex", 0);
Select要素のjQueryオブジェクトを保存している場合:
var jQuerySelectObject = $("...");
...
jQuerySelectObject.val(jQuerySelectObject.children().eq(0).val());
$('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)
あなたはそれを使うことによってdropdown
から任意のオプションを選択することができます。
// 'N' can by any number of option. // e.g., N=1 for first option
$("#DropDownId").val($("#DropDownId option:eq(N-1)").val());
ECMAScript 6 と共にjQueryを使って、この最善のアプローチをチェックしてください。
$('select').each((i, item) => {
var $item = $(item);
$item.val($item.find('option:first').val());
});
$("#target").val(null);
クロムでうまく働いた