Javascript document.getElementById(arg) -объект имеет значение null или не определен

У меня есть функция, которая устанавливает selected = true. У меня есть выпадающий список стран. Каждый вариант имеет идентификаторы, такие как США, Германия...

    function nation(arg) 
{
    if (arg == '<?php echo $this->escape($this->user->get( 'country' ));?>')
        document.getElementById(arg).selected = true;
}

window.onload = nation('<?php echo $this->escape($this->user->get( 'country' ));?>');

Я уверен, что php-код возвращает мне правильную страну, но отладчик javascript говорит:

SCRIPT5007: Unable to set value of the property 'selected': object is null or undefined 

В чем проблема?


person Ok-Alex    schedule 07.10.2011    source источник
comment
Отправлять соответствующий сгенерированный код Javascript на стороне клиента, а не сценарии на стороне сервера.   -  person duri    schedule 07.10.2011


Ответы (1)


Вы вызываете nation немедленно, а затем присваиваете возвращаемое значение onload, поэтому вы почти наверняка вызываете его до того, как <select> будет добавлено в DOM.

Вам нужно назначить функцию.

window.onload = function () {
    nation('<?php echo $this->escape($this->user->get( 'country' ));?>');
};
person Quentin    schedule 07.10.2011