Используйте jQuery, чтобы установить выбранный индекс раскрывающегося списка. - PullRequest
4 голосов
/ 22 июня 2011

Я видел другие посты здесь на SO об этой же теме, но я не нашел решения, которое устанавливает выбор с помощью jQuery.

У меня есть выпадающее меню, которое выглядит так:

<select type="select" id="docsList" name="docsList"> 
    <option id="defaultListItem" value="0">Select a Document...</option> 
    <option value="38">Document 1</option> 
    <option value="35">Document 2</option> 
    <option value="46">Document 3</option> 
    <option value="45">Document 4</option>          
</select>

Мне нужно сбросить раскрывающийся список в функции $.ajax() success . Я использовал следующее:

$('select#docsList option:selected').val('0');
$('select#docsList').attr('selectedIndex', 0);

... и некоторые другие.

Я начинаю думать, что этот код в порядке, и у меня есть что-то еще, предотвращающее сброс выпадающего списка.

Ответы [ 5 ]

14 голосов
/ 22 июня 2011

Вы слишком усложняете вещи.Вам не нужен jQuery для получения / установки <select> selectedIndex.

$('#docsList').get(0).selectedIndex = 0;

При установке значения <select>, вызовите .val() на <select>, а нена одном из <option> с.

$('#docsList').val('0');
7 голосов
/ 22 июня 2011

$('#docsList option[value=0]').attr('selected', 'selected');
Это установит <option> с атрибутом значения равным 0 в качестве выбранной опции.

4 голосов
/ 26 сентября 2012

Ответ Мэтта имеет небольшой недостаток:

$('#docsList').val('0');

Приведенный выше код не будет работать в IE 9, когда он не находится в режиме совместимости.Следующие кросс-браузеры сработали для меня:

document.getElementById('docsList').selectedIndex = 0;

Спасибо за указатель в правильном направлении.

3 голосов
/ 22 июня 2011

Вы хотите $('select#docsList').val('0'); См. Пример по адресу: http://jsfiddle.net/uE2YN/

0 голосов
/ 20 марта 2015
$(".btn-reset").click(function () {
    $('#docsList').val('123er43f-12fr-7hgy-ju78-kju345uy65r3');
    $('#docsList').trigger('chosen:updated');
});
...