我已决定从html表单元素中将所有对java脚本事件的调用移除到外部文件。在这样做的时候,我为每个项目注册了一个事件。然而,使用'this
'访问元素属性不能再用于我已经决定使用的event.target.value
值属性和event.target.name
作为名称属性。我认为这不是最好的实施,因为我得到了一些不利的实施结果。Javascript注册外部事件处理程序
下是我实施的代码和更多的问题。
JavaScript的内联事件处理程序(之前)
<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
来引用触发事件值和名称的对象。