it-swarm.com.ru

Установить выбранную опцию окна выбора

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

$("#gate").val('Gateway 2');

с

<select id="gate">
    <option value='null'>- choose -</option>
    <option value='gateway_1'>Gateway 1</option>
    <option value='gateway_2'>Gateway 2</option>
</select>

Но это не работает. Есть идеи?

306
Artjom Zabelin

Это определенно должно работать. Вот демо . Убедитесь, что вы поместили свой код в $(document).ready:

$(function() {
    $("#gate").val('gateway_2');
});
444
Darin Dimitrov
$(document).ready(function() {
    $("#gate option[value='Gateway 2']").prop('selected', true);
    // you need to specify id of combo to set right combo, if more than one combo
});
142
Zkoh

$('#gate').val('Gateway 2').prop('selected', true);

31
Marty Hirsch

Я обнаружил, что использование метода jQuery .val () имеет существенный недостаток.

<select id="gate"></select>
$("#gate").val("Gateway 2");

Если это поле выбора (или любой другой входной объект) находится в форме, и в форме используется кнопка сброса, при нажатии кнопки сброса установленное значение будет очищено и не будет сброшено до начального значения, как вы ожидаете.

Кажется, это работает лучше для меня.

Для полей выбора 

<select id="gate"></select>
$("#gate option[value='Gateway 2']").attr("selected", true);

Для ввода текста

<input type="text" id="gate" />
$("#gate").attr("value", "your desired value")

Для ввода текста

<textarea id="gate"></textarea>
$("#gate").html("your desired value")

Для флажков

<input type="checkbox" id="gate" />
$("#gate option[value='Gateway 2']").attr("checked", true);

Для радио кнопок

<input type="radio" id="gate" value="this"/> or <input type="radio" id="gate" value="that"/>
$("#gate[value='this']").attr("checked", true);
15
Mike
  $("#form-field").val("5").trigger("change");
9
Mohd Bashir

Это отлично работает. Смотрите эту скрипку: http://jsfiddle.net/kveAL/

Возможно, вам нужно объявить свой jQuery в обработчике $(document).ready()

Кроме того, возможно, у вас есть два элемента с одинаковым идентификатором?

6
James Wiseman

Это был бы другой вариант:

$('.id_100 option[value=val2]').prop('selected', true);
5
Kent Aguilar

У меня такая же проблема. 

Решение: добавить обновление.

$("#gate").val('Gateway 2');
$("#gate").selectmenu('refresh');
4
Posted

Моя проблема

get_courses(); //// To load the course list
$("#course").val(course); //// Setting default value of the list

Я была такая же проблема . Единственное отличие от вашего кода в том, что я загружал поле выбора через вызов ajax, и как только вызов ajax был выполнен, я установил значение по умолчанию для поля выбора.

Решение

get_courses();
   setTimeout(function() {
     $("#course").val(course);
  }, 10);
1
Korah

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

document.querySelector("#gate option[value='Gateway 2']").setAttribute('selected',true);
<select id="gate">
    <option value='null'>- choose -</option>
    <option value='Gateway 1'>Gateway 1</option>
    <option value='Gateway 2'>Gateway 2</option>
</select>

1
SyWill

Некоторые случаи могут быть

$('#gate option[value='+data.Gateway2+']').attr('selected', true);
0
Hemil