Установить выбранную опцию окна выбора - PullRequest
321 голосов
/ 13 января 2011

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

$("#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>

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

Ответы [ 15 ]

1 голос
/ 07 августа 2015

Моя проблема

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);
0 голосов
/ 25 июня 2016

Добавление к @icksde и @Korah (спасибо!)

При построении параметров с AJAX document.ready может быть запущено до того, как список будетвстроенный, поэтому

Это не работает

$(document).ready(function() {
    $("#gate").val('Gateway 2');
});

Это работает

Тайм-аут работает, но как @icksde говорит, что он хрупкий (мне действительно нужно было 20 мс вместо 10 мс).Лучше поместить его в функцию AJAX следующим образом:

$("#someObject").change(function() {
    $.get("website/page.php", {parameters}, function(data) {
        $("#gate").append("<option value='Gateway 2'">" + "Gateway 2" + "</option>");
        $("#gate").val('Gateway 2');
    }, "json");
});
0 голосов
/ 02 августа 2014
$(function() {
$("#demo").val('hello');
});
0 голосов
/ 10 февраля 2014
// Make option have a "selected" attribute using jQuery

var yourValue = "Gateway 2";

$("#gate").find('option').each(function( i, opt ) {
    if( opt.value === yourValue ) 
        $(opt).attr('selected', 'selected');
});
0 голосов
/ 22 ноября 2013

У меня была проблема, когда значение не было установлено из-за синтаксической ошибки перед вызовом.

$("#someId").value(33); //script bailed here without showing any errors Note: .value instead of .val
$("#gate").val('Gateway 2'); //this line didn't work.

Проверка синтаксических ошибок перед вызовом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...