回答:
$("#target").val($("#target option:first").val());
あなたはこれを試すことができます
$("#target").prop("selectedIndex", 0);
$("#target").prop("selectedIndex", 0).change();
// 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');
each
関数は必要ありません。次のようにする必要があります: $('#target option[selected="selected"]').removeAttr('selected')
またremoveProp
、prop
代わりにと一緒に使用する必要があります。
使うとき
$("#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')
(選択した複数の要素の)値をリセットする別の方法は次のとおりです。
$("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;
});
$("selector")
あなただけ書かれている可能性が$('#target')
$('#newType 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');
.val()
は、リストの最初のオプションの値を取得するだけです。元の質問で尋ねられたように、最初のオプションを実際に選択する(選択する)ことはありません。
$("#target").val(null);
クロムでうまく働いた
ECMAScript 6で jQueryを使用するこの最良のアプローチを確認してください。
$('select').each((i, item) => {
var $item = $(item);
$item.val($item.find('option:first').val());
});
$('select#id').val($('#id option')[index].value)
idを特定の選択タグ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)