我正在尝试从javascript创建一个选择输入并将函数绑定到用户更改选项时.到目前为止,我有:
filter.change = function() {
console.log("CHANGED");
}
Run Code Online (Sandbox Code Playgroud)
但在选择别的东西时没有任何反应.这段代码有什么问题.另外,如何在函数中获取新选择的值?就像是:
console.log(this.value + "has been selected")
Run Code Online (Sandbox Code Playgroud)
Dig*_*ane 11
你很亲密,你需要使用onchange:
filter.onchange = function() {
alert("CHANGED");
//You can alert the value of the selected option, using this:
alert(this.value + " was selected");
}
Run Code Online (Sandbox Code Playgroud)
当然,正如德兰所说,你应该尽可能addEventListener(和attachEvent).例:
//Define a onchange handler:
var changeHandler = function() {
alert("CHANGED");
//You can alert the value of the selected option, using this:
alert(this.value + " was selected");
}
//First try using addEventListener, the standard method to add a event listener:
if(filter.addEventListener)
filter.addEventListener("change", changeHandler, false);
//If it doesn't exist, try attachEvent, the IE way:
else if(filter.attachEvent)
filter.attachEvent("onchange", changeHandler);
//Just use onchange if neither exist
else
filter.onchange = changeHandler;
Run Code Online (Sandbox Code Playgroud)
如果使用这种方式,属性名称为onchange:
filter.onchange = function() {
alert(this.value + "has been selected");
};
Run Code Online (Sandbox Code Playgroud)
更多的信息:
注意:还有另一种注册事件处理程序的方法,它允许为同一事件分配多个事件处理程序.有关更多信息,请查看quirksmode.org - 高级事件注册模型.