Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript选择输入事件_Javascript - Fatal编程技术网

javascript选择输入事件

javascript选择输入事件,javascript,Javascript,我试图从javascript创建一个select输入,并在用户更改选项时将函数绑定到。到目前为止,我已经: filter.change = function() { console.log("CHANGED"); } 但在选择其他东西时不会发生任何变化。这个代码有什么问题。另外,如何在函数中获取新的选定值?比如: console.log(this.value + "has been selected") 如果使用这种方式,则属性名称为onchange: filter.onchange

我试图从javascript创建一个select输入,并在用户更改选项时将函数绑定到。到目前为止,我已经:

filter.change = function() {
    console.log("CHANGED");
}
但在选择其他东西时不会发生任何变化。这个代码有什么问题。另外,如何在函数中获取新的选定值?比如:

console.log(this.value + "has been selected")

如果使用这种方式,则属性名称为
onchange

filter.onchange = function() {
     alert(this.value + "has been selected");
};
更多信息:


注意:还有另一种注册事件处理程序的方法,允许为同一事件分配多个事件处理程序。有关更多信息,请查看。

您很接近,您需要使用:

当然,正如德兰所说,只要有可能,您应该
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;
如果你愿意,你可以这样使用它

$('select').change(function(){
   alert($('select').val() + ' was just selected');
});
或者使用onchange

filter.onchange = function() {
    alert(this.value + " was selected");
}

当然,在可用的情况下,应该使用
addEventListener
,而不是
.change

。为什么要使用addEventListener@德兰:我会说这要看情况。如果你确实创建了一个库。如果您在自己的站点上使用它,而不使用任何其他库,那么这种方式在所有浏览器差异方面都会更容易。摆脱传统事件模型的最大好处是能够轻松地在对象的事件上添加和管理多个函数侦听器。@Delan:是,但是,这增加了处理W3C和IE之间差异的复杂性。在一个简单的设置中,您不需要这样做。但是我要说一句话……当然,如果可以的话,应该使用
addEventListener
。addEventListener在IE中工作吗?您能否解释一下,如果addEventListener的浏览器支持较少,为什么它会更好?
filter.onchange = function() {
    alert(this.value + " was selected");
}