JQuery/Programmatically Выберите опцию в поле выбора
В настоящее время я использую jQuery для возврата некоторых результатов JSON. Как только эти результаты будут возвращены, я использую их для заполнения полей в моей форме.
Однако мне нужна помощь в предварительном выборе элементов в раскрывающемся списке. Например, у меня есть поле выбора (это сокращено):
<select id="startTime">
<option value="14:00:00">2:00 pm</option>
<option value="15:00:00">3:00 pm</option>
<option value="16:00:00">4:00 pm</option>
<option value="17:00:00">5:00 pm</option>
<option value="18:00:00">6:00 pm</option>
</select>
И если мое значение JSON:
var start_time = data[0].start // Let say this is '17:00:00'
Как я могу, используя jQuery, сделать параметр со значением '17: 00: 00 'выбрано?
<option value="17:00:00" selected="selected">5:00 pm</option>
Ответы
Ответ 1
обновление:
Как и в jQuery 1.9, jQuery обновил эту функциональность. "Выбранное" состояние опции на самом деле является свойством, поэтому jQuery изменил это, чтобы использовать метод .prop(). Синтаксис очень похож и легко переключается:
$('#startTime option[value=17:00:00]').prop('selected', true);
Смотрите http://api.jquery.com/prop/#entry-longdesc за то, зачем ему нужно пройти true
.
Старые jQuery
$('#startTime option[value=17:00:00]').attr('selected', 'selected');
или
$('#startTime option[value='+ data[0].start +']').attr('selected', 'selected');
Ответ 2
$('#startTime').val(start_time);
Ответ 3
Это просто $("#startTime").val(start_time);
Ответ 4
ОБНОВЛЕНИЕ
Как и в jQuery 1.9, jQuery обновил эту функциональность. "Выбранное" состояние опции на самом деле является свойством, поэтому jQuery изменил это, чтобы использовать метод .prop(). Синтаксис очень похож и легко переключается:
$('option[value=17:00:00]').prop('selected', 'selected');
Ответ 5
Дополнительная информация для мобильных пользователей jQuery (1.3.0):
Здесь аналогичный пример.
Если вы попробуете пример выше с jquery 1.9.1 и jQuery mobile 1.3.0, вы увидите, что он не работает, если вы не добавили
$("#location_list").selectmenu("refresh");
Помните об этом при работе с jQuery mobile. Это дало мне большую головную боль.
Ответ 6
По какой-то причине для меня это работает следующим образом:
$('#startTime').val(''+data[0].start+'');
Ответ 7
var varValue="17:00:00";
$("#startTime").ready(function(){
$("#startTime option[value='"+varValue+"']").prop("selected", "selected"); });
Работает для меня на jQuery 1.10