Как сделать первый вариант <select>выбранным с помощью jQuery - PullRequest
510 голосов
/ 12 сентября 2009

Как сделать первый вариант выбранным с помощью jQuery?

<select id="target">
  <option value="1">...</option>
  <option value="2">...</option>
</select>

Ответы [ 27 ]

878 голосов
/ 12 сентября 2009
$("#target").val($("#target option:first").val());
155 голосов
/ 08 августа 2013

Вы можете попробовать это

$("#target").prop("selectedIndex", 0);
107 голосов
/ 12 сентября 2009
// 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');
64 голосов
/ 15 декабря 2010

Когда вы используете

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

это не будет работать в Chrome и Safari, если первое значение параметра равно нулю.

Я предпочитаю

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

потому что он может работать во всех браузерах.

42 голосов
/ 17 мая 2013

Изменение значения выбранного входа или настройка выбранного атрибута может перезаписать свойство selectedOptions по умолчанию элемента DOM, в результате чего может произойти сбой элемента в форме, в которой было вызвано событие сброса.

Используйте метод prop jQuery, чтобы очистить и установить необходимую опцию:

$("#target option:selected").prop("selected", false);
$("#target option:first").prop("selected", "selected");
32 голосов
/ 24 мая 2011
$("#target")[0].selectedIndex = 0;
18 голосов
/ 11 июля 2013

Одно тонкое замечание, которое я думаю Я обнаружил, что о самых популярных голосующих ответах является то, что, даже если они правильно меняют выбранное значение, они не обновляют элемент, который видит пользователь (только когда они нажимают виджет, они увидят галочку рядом с обновленным элементом).

Цепочка вызова .change () до конца также обновит виджет пользовательского интерфейса.

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

(обратите внимание, что я заметил это, когда использовал jQuery Mobile и коробку на рабочем столе Chrome, так что это может быть не везде).

15 голосов
/ 29 июля 2011

Если у вас отключены опции, вы можете добавить not ([отключено]) , чтобы предотвратить их выбор, что приводит к следующему:

$("#target option:not([disabled]):first").attr('selected','selected')
14 голосов
/ 16 мая 2012

Другой способ сброса значений (для нескольких выбранных элементов) может быть следующим:

$("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;

});
8 голосов
/ 19 августа 2013
$('#newType option:first').prop('selected', true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...