Как сделать первый вариант с помощью jQuery?
<select id="target">
<option value="1">...</option>
<option value="2">...</option>
</select>
Как сделать первый вариант с помощью jQuery?
<select id="target">
<option value="1">...</option>
<option value="2">...</option>
</select>
$("#target").val($("#target option:first").val());
// 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").prop("selectedIndex", 0);
Когда вы используете
$("#target").val($("#target option:first").val());
это не будет работать в Chrome и Safari, если первое значение параметра равно null.
Я предпочитаю
$("#target option:first").attr('selected','selected');
поскольку он может работать во всех браузерах.
Изменение значения входа выбора или настройка выбранного атрибута может переписать свойство selectedOptions по умолчанию для элемента DOM, в результате чего элемент, который не может reset правильно в форме, которая вызвала событие reset.
Использовать метод поддержки jQuery для очистки и установки необходимого параметра:
$("#target option:selected").prop("selected", false);
$("#target option:first").prop("selected", "selected");
$("#target")[0].selectedIndex = 0;
Один тонкий момент, который, как я думаю, я узнал о верхних голосовых ответах, заключается в том, что даже если они правильно изменяют выбранное значение, они не обновляют элемент, который видит пользователь (только когда они нажимают на виджет, они видят проверку рядом с обновленным элементом).
Цепочка вызова .change() до конца также обновит виджет пользовательского интерфейса.
$("#target").val($("#target option:first").val()).change();
(Обратите внимание, что я заметил это при использовании jQuery Mobile и окна на рабочем столе Chrome, так что это может быть не везде).
Если вы отключили опции, вы можете добавить не ([отключено]), чтобы предотвратить их выбор, что приводит к следующему:
$("#target option:not([disabled]):first").attr('selected','selected')
Другим способом для reset значений (для нескольких выбранных элементов) может быть следующее:
$("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;
});
Я обнаружил, что только настройка attr не работает, если уже есть выбранный атрибут. Используемый мной код сначала отключит выбранный атрибут, затем выберите первый вариант.
$('#target').removeAttr('selected').find('option:first').attr('selected', 'selected');
$('#newType option:first').prop('selected', true)
Простой:
$('#target option:first').prop('selected', true);
Вот как я это сделаю:
$("#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('');
Это хорошо и просто.
Использование:
$("#selectbox option:first").val()
Пожалуйста, найдите простой в этот JSFiddle.
На обратной стороне ответа Джеймса Ли Бейкера я предпочитаю это решение, поскольку оно устраняет зависимость от поддержки браузера: first: selected...
$('#target').children().prop('selected', false);
$($('#target').children()[0]).prop('selected', 'selected');
Он работал только для меня, используя триггер ('change') в конце, например:
$("#target option:first").attr('selected','selected').trigger('change');
Для меня это работало только тогда, когда я добавил следующий код:
.change();
Для меня это работало только тогда, когда я добавил следующий код: Поскольку я хотел "reset" форму, то есть выбрать все первые варианты всех выбранных форм, я использовал следующий код:
$('form').find('select').each(function(){
$(this).val($("select option:first").val());
$(this).change();
});
$("#target").val(null);
работал отлично в хроме
Если вы сохраняете объект jQuery элемента select:
var jQuerySelectObject = $("...");
...
jQuerySelectObject.val(jQuerySelectObject.children().eq(0).val());
Использование:
alert($( "#target option:first" ).text());
Проверьте этот лучший подход, используя jQuery с ECMAScript 6:
$('select').each((i, item) => {
var $item = $(item);
$item.val($item.find('option:first').val());
});