某些现代浏览器(包括Firefox 3.X)支持HTML5“oninput”事件。

但是,奇怪的是,它似乎只适用于内联javascript:

<input id = "q" oninput="alert('blah')">

当我尝试使用JavaScript代码进行设置时,不会触发。
var q = document.getElementById("q");
q.oninput = function(){alert("blah");};

这仅仅是Firefox中的错误,还是有某些原因会导致这种情况发生?

最佳答案

下载FireFox v3.6.27并进行一些测试和搜索之后。我发现以前的答案是错误的。

我得到的是:



因此,在这种情况下要添加事件监听器,您可以执行以下任一操作

<input id = "q" oninput="alert('blah')">

或者
q.addEventListener('input', function(){alert("blah");}, true);

但我更喜欢后一种方式。您可以在addEventListener中找到原因。
IE attachEvent中也有类似的功能。

09-19 06:35