Я решил удалить все вызовы события java script из элементов формы html во внешний файл. При этом я зарегистрировал событие для каждого элемента. Однако доступ к атрибутам элементов с использованием «this
» больше не может использоваться, я решил использовать event.target.value
для атрибута value и event.target.name
для атрибута name. Я думаю, что это не лучшая реализация, так как я получаю некоторые неблагоприятные результаты от ее реализации.Javascript регистрирует обработчики событий извне
Это мой реализованный код и многое другое.
JavaScript Инлайн Event Handler (Перед)
<input type="radio" name="rdb_NewUsers" value="1" list="#{'true':'Yes','false':'No'}" onclick="configureItemsForRadioButton(this.value, this.name)"
JavaScript зарегистрированный внешний обработчик событий (После)
var configureRadioButtons = {
onClick:function(evt){
evt.stopPropagation();
console.log(evt.target.value + '||'+evt.target.name);
configureItemsForRadioButton(evt.target.value, evt.target.name);
}
};
dojo.connect(dojo.byId("rdbNewUser"), "onclick", configureRadioButtons, "onClick");
Проблема я столкнулся, когда я нажимаю на любую кнопку приводит фактически выполняет console.log(evt.target.value + '||'+evt.target.name);
, даже если вы не зарегистрировали событие для кнопки. Я думаю, что использование event.target
относится к любому событию, выполненному на странице. Что еще можно использовать вместо evt.target.value
, чтобы обратиться к объекту, который произвел имя и имя события.