Выберите значение списка неопределенным в $ (документ) .ready - PullRequest
5 голосов
/ 22 марта 2010

У меня есть следующий код, который я хочу загрузить значения при изменении выбора, а также выполнить загрузку выбора изначально (поскольку FF «сохраняет» последнее значение раскрывающегося списка при определенных обстоятельствах).

Выбранная часть функции работает правильно, но по какой-то причине при непосредственном вызове load2 значение $('#select1').value равно undefined, даже если я проверяю DOM в Firebug сразу после загрузки select1.value имеет значение.

Как запустить функцию load2 после готовности select1.value?Какое событие скажет мне, когда все элементы $('#select1') будут инициализированы?

$(document).ready(function() {
    //Setup change hook 
    $('#select1').change(function(event) {
        //Remove the old options right away
        $('#select2').find('option').remove();
        //Load the new options
        load2(this.value);
    });

    //Do load for current value
    load2($('#select1').value);
});

Ответы [ 2 ]

6 голосов
/ 23 марта 2010

AFAIK У объекта jQuery нет поля value. Следовательно, я ожидал бы, что следующий оператор передаст значение undefined в функцию load2():

load2($('#select1').value);

Однако объект jQuery имеет функцию val(). Попробуйте использовать это вместо:

load2($('#select1').val());

Кроме того, вы должны иметь доступ к полю DOM value, например:

load2($('#select1').get(0).value);
0 голосов
/ 22 марта 2010

Если я правильно понимаю, вы можете проверить, существует ли значение, а затем запустить его:

if ($('#select1').value) {
    load2($('#select1').value);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...