在看到这个jsfiddle之前,我从未听说过jQuery中有一个事件叫做input。

你知道为什么有用吗?是keyup的别名吗?

$(document).on('input', 'input:text', function() {});

当前回答

我认为'input'在这里的工作方式与'oninput'在DOM级别O事件模型中的工作方式相同。

顺便说一下:

Just as silkfire commented it, I too googled for 'jQuery input event'. Thus I was led to here and astounded to learn that 'input' is an acceptable parameter to jquery's bind() command. In jQuery in Action (p. 102, 2008 ed.) 'input' is not mentionned as a possible event (against 20 others, from 'blur' to 'unload'). It is true that, on p. 92, the contrary could be surmised from rereading (i.e. from a reference to different string identifiers between Level 0 and Level 2 models). That is quite misleading.

其他回答

使用INPUT时要小心。在ie11中,此事件在聚焦和模糊时触发。但在其他浏览器中,更改会触发它。

https://connect.microsoft.com/IE/feedback/details/810538/ie-11-fires-input-event-on-focus

$("input#myId").bind('keyup', function (e) {    
    // Do Stuff
});

可以在IE和chrome浏览器中工作

正如claustrofob所说,IE9+支持oninput。

但是,“oninput事件在ie9中有bug。当通过用户界面从文本字段中删除字符时,只有在插入字符时才会触发它。虽然Internet Explorer 9支持onpropertychange事件,但与oninput事件类似,它也有bug,在删除时不会触发。

由于字符可以通过多种方式删除(退格键和删除键,CTRL + X,上下文菜单中的剪切和删除命令),因此没有很好的解决方案来检测所有更改。如果使用上下文菜单的Delete命令删除字符,则无法在ie9的JavaScript中检测到修改。”

我有很好的结果绑定到输入和键下(和键下,如果你想让它在IE中,同时按住退格键)。

使用jQuery,以下是相同的效果:

$('a').click(function(){ doSomething(); });
$('a').on('click', function(){ doSomething(); });

然而,对于输入事件,似乎只有第二种模式在我测试的浏览器中有效。

因此,你会期望这个工作,但它没有(至少目前):

$(':text').input(function(){ doSomething(); });

同样,如果你想利用事件委托(例如在输入之前在#容器上设置事件)。text被添加到DOM),这应该会出现在脑海中:

$('#container').on('input', ':text', function(){ doSomething(); });

可悲的是,再次,它不工作目前!

只有这个模式有效:

$(':text').on('input', function(){ doSomething(); });

编辑了更多的最新信息

我可以肯定这种模式:

$('#container').on('input', ':text', function(){ doSomething(); });

NOW也适用于所有“标准”浏览器。

我认为'input'在这里的工作方式与'oninput'在DOM级别O事件模型中的工作方式相同。

顺便说一下:

Just as silkfire commented it, I too googled for 'jQuery input event'. Thus I was led to here and astounded to learn that 'input' is an acceptable parameter to jquery's bind() command. In jQuery in Action (p. 102, 2008 ed.) 'input' is not mentionned as a possible event (against 20 others, from 'blur' to 'unload'). It is true that, on p. 92, the contrary could be surmised from rereading (i.e. from a reference to different string identifiers between Level 0 and Level 2 models). That is quite misleading.