Как сделать первый вариант выбранным с помощью 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());
Вы можете попробовать это
$("#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());
это не будет работать в Chrome и Safari, если первое значение параметра равно нулю.
я предпочитаю
$("#target option:first").attr('selected','selected');
потому что он может работать во всех браузерах.
Изменение значения выбранного входа или настройка выбранного атрибута может перезаписать свойство selectedOptions по умолчанию элемента DOM, в результате чего может произойти сбой элемента в форме, в которой было вызвано событие сброса.
Используйте метод prop 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, так что это может быть не везде).
Если у вас отключены параметры, вы можете добавить not ([отключено]), чтобы не выбирать их, что приводит к следующему:
$("#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')
Я обнаружил, что просто установка 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');
У меня сработало только использование триггера («изменение») в конце, например:
$("#target option:first").attr('selected','selected').trigger('change');
Если вы собираетесь использовать первый вариант по умолчанию, как
<select>
<option value="">Please select an option below</option>
...
тогда вы можете просто использовать:
$('select').val('');
Это красиво и просто.
Это сработало для меня!
$("#target").prop("selectedIndex", 0);
На обратной стороне ответа Джеймса Ли Бейкера я предпочитаю это решение, поскольку оно устраняет зависимость от поддержки браузера: 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();
});
Использование:
$("#selectbox option:first").val()
Пожалуйста, найдите простую работу в этом JSFiddle .
.val()
просто получает значение первой опции в списке. На самом деле он не выбирает (делает выбранным) первый вариант, как было задано в исходном вопросе.
Для меня это работало только тогда, когда я добавил следующую строку кода
$('#target').val($('#target').find("option:first").val());
$("#target").val(null);
нормально работал в хроме
Проверьте этот лучший подход, используя jQuery с ECMAScript 6 :
$('select').each((i, item) => {
var $item = $(item);
$item.val($item.find('option:first').val());
});
Вы можете выбрать любой вариант dropdown
, используя его.
// 'N' can by any number of option. // e.g., N=1 for first option
$("#DropDownId").val($("#DropDownId option:eq(N-1)").val());
$('select#id').val($('#id option')[index].value)
Замените идентификатор конкретным идентификатором тега, а индекс - конкретным элементом, который вы хотите выбрать.
т.е.
<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)