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

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>
4b9b3361

Ответ 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