Подтвердить что ты не робот

Используйте 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());

Где я иду не так?

4b9b3361

Ответ 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 и не пуст.