在看到这个jsfiddle之前,我从未听说过jQuery中有一个事件叫做input。
你知道为什么有用吗?是keyup的别名吗?
$(document).on('input', 'input:text', function() {});
在看到这个jsfiddle之前,我从未听说过jQuery中有一个事件叫做input。
你知道为什么有用吗?是keyup的别名吗?
$(document).on('input', 'input:text', function() {});
当前回答
Oninput事件对于跟踪输入字段的变化非常有用。
但是IE版本< 9不支持。但是较旧的IE版本有自己的专有事件onpropertychange,其功能与oninput相同。
所以你可以这样用:
$(':input').on('input propertychange');
有一个完整的跨浏览器支持。
因为任何属性更改都可以触发propertychange,例如,disabled属性被更改,那么你想要做的是:
$(':input').on('propertychange input', function (e) {
var valueChanged = false;
if (e.type=='propertychange') {
valueChanged = e.originalEvent.propertyName=='value';
} else {
valueChanged = true;
}
if (valueChanged) {
/* Code goes here */
}
});
其他回答
$("input#myId").bind('keyup', function (e) {
// Do Stuff
});
可以在IE和chrome浏览器中工作
使用INPUT时要小心。在ie11中,此事件在聚焦和模糊时触发。但在其他浏览器中,更改会触发它。
https://connect.microsoft.com/IE/feedback/details/810538/ie-11-fires-input-event-on-focus
jQuery为.on()方法提供了以下签名:.on(events [, selector] [, data], handler)
事件可以是引用中列出的任何一个:
https://developer.mozilla.org/en-US/docs/Web/Events
但是,并不是所有浏览器都支持它们。
关于输入事件,Mozilla声明如下:
的值时同步触发DOM输入事件 或者元素被改变了。此外,它会继续发射 当内容发生变化时,可内容编辑器。
Oninput事件对于跟踪输入字段的变化非常有用。
但是IE版本< 9不支持。但是较旧的IE版本有自己的专有事件onpropertychange,其功能与oninput相同。
所以你可以这样用:
$(':input').on('input propertychange');
有一个完整的跨浏览器支持。
因为任何属性更改都可以触发propertychange,例如,disabled属性被更改,那么你想要做的是:
$(':input').on('propertychange input', function (e) {
var valueChanged = false;
if (e.type=='propertychange') {
valueChanged = e.originalEvent.propertyName=='value';
} else {
valueChanged = true;
}
if (valueChanged) {
/* Code goes here */
}
});
当通过用户界面更改元素的文本内容时发生。
它不完全是keyup的别名,因为即使键不做任何事情,keyup也会触发(例如:按下然后释放Control键将触发keyup事件)。
考虑它的一个好方法是这样的:它是一个每当输入发生变化时就会触发的事件。这包括——但不限于——按下修改输入的键(例如,Ctrl本身不会触发事件,但Ctrl- v会触发一些文本)、选择自动完成选项、linux风格的中键粘贴、拖放以及许多其他操作。
更多细节请参阅本页和答案下方的评论。