Вы делаете здесь дополнительную работу, которую Prototype делает для вас. Во-первых, установка метода документа onload
не только является действительно старой школой, но и будет сбивать любой ранее установленный наблюдатель на этом событии.
$(document).observe('dom:loaded', function(...){...});
... - это современный способ регистрации одного (или нескольких) прослушивателей событий для события загрузки документа.
Далее вы используете getElementById
, который будет работать, но не возвращает объект с расширенным прототипом в некоторых браузерах.
$('element-id');
... будет получать ссылку на элемент и расширять его, если ваш браузер не соблюдает все аспекты прототипного наследования.
Наконец, все это может быть сделано как более простым, так и более пуленепробиваемым, используя отложенного наблюдателя. Представьте, что ваш интерфейс DOM был обновлен Ajax - это заставит вашего наблюдателя пропустить события, запущенные этим элементом select, потому что он не ссылался на один и тот же элемент (===), даже если идентификатор сопоставлен.
$(document).on('change', '#_accountwebsite_id', function(evt, elm){
alert(elm.inspect());
});
Этот наблюдатель будет реагировать на любое событие изменения на элементе с правильным ID, даже если он был добавлен после того, как наблюдатель был зарегистрирован в документе.
Я не знаю, как поблагодарить вас !!!!! –
Я просто заметил некоторые опечатки, поэтому перезагрузите, прежде чем использовать это прямо! – Walter