Используйте jQuery для установки значения окна выбора для первого параметра
Я динамически заполняю поле выбора с параметрами. Когда я это сделаю, я хочу, чтобы значение поля выбора было значением первого параметра (если вам нравится опция по умолчанию). Звучит очень просто, но я просто не могу заставить его работать.
var myElement = $('select[name="myName"]');
.... выполнил следующие три варианта:
// myElement.find('option').first().prop('selected', 'selected');
// myElement.val(myElement.find('options').first().val());
myElement.prop('selectedIndex', 0);
... но следующая строка дает пустое предупреждение
alert(myElement.val());
Где я иду не так?
Ответы
Ответ 1
параметры должны быть
myElement.find('option:eq(0)').prop('selected', true);
Вы можете использовать селектор eq
, чтобы выбрать первый вариант.
Если вы знаете значение первого параметра. Тогда вы могли бы просто сделать
myElemeent.val('first value') // Which selects the option by default
Второй случай, который вы пробовали, должен работать, если вы не звоните в нужную точку. то есть; ожидая завершения ответа ajax.
Попробуйте вызвать это внутри обработчика done
или success
(устаревший)
Ответ 2
Вы почти получили его, сбросьте 's' в 'options':
myElement.val(myElement.find('option').first().val());
Работа jsFiddle
Ответ 3
Вы также можете использовать следующий код:
myElement[0].selectedIndex = 0;
Получает элемент Dom (не объект jQuery), работает с ванильным Javascript и использует его для установки первого параметра в качестве выбранного на основе этого индекса.
Ответ 4
Если вы хотите быть уверенным, что ваш вариант имеет значение и не является заполнителем, вы можете сделать:
$('select option').filter( function (index, option) {
return option.attributes.value
}).val()
Таким образом вы проверите, имеет ли HTML node атрибут value
и не пуст.