У меня есть следующий код, который я хочу загрузить значения на изменении выбора и также делаю загрузку выбора первоначально (так как 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);
});
AFAIK объект jQuery не имеет поля value
. Следовательно, я ожидаю, что следующий оператор передаст значение undefined
функции load2 ()
:
load2($('#select1').value);
Однако объект jQuery имеет значение val ( )
функция. Попробуйте использовать это вместо:
load2($('#select1').val());
В качестве альтернативы вы сможете получить доступ к значению
поля DOM следующим образом:
load2($('#select1').get(0).value);
Если я правильно понимаю, вы можете проверить, существует ли значение, а затем запустить его:
if ($('#select1').value) {
load2($('#select1').value);
}