为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery‘输入’事件

jQuery‘输入’事件

MM们 2019-07-06 15:42:08
jQuery‘输入’事件我从未听说过jQuery中有一个叫做input直到我看到这个小提琴.你知道为什么会起作用吗?它是一个别名吗?keyup或者别的什么?$(document).on('input', 'input:text', function() {});
查看完整描述

3 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

在通过用户界面更改元素的文本内容时发生。

它不完全是一个别名keyup因为keyup即使键什么都不做也会触发(例如:按下然后释放Control键将触发keyup活动)。

思考这个问题的一个好方法是这样的:它是一个每当输入发生变化就触发的事件。这包括-但不限于-按键来修改输入(例如,Ctrl本身不会触发事件,但是Ctrl-V要粘贴一些文本将),选择一个自动完成选项,linux风格的中点击粘贴,拖放,以及许多其他事情。

看见这,这个页和对此答案的评论,以了解更多细节。


查看完整回答
反对 回复 2019-07-06
?
守候你守候我

TA贡献1802条经验 获得超10个赞

oninput事件对于跟踪输入字段的更改非常有用。

然而,IE版本<9不支持它。但是旧的IE版本有自己的专有事件。onpropertychange这和oninput.

所以你可以这样使用它:

$(':input').on('input propertychange');

以获得完全的跨浏览器支持。

由于可以对任何属性更改触发属性更改,例如,已禁用的属性将被更改,因此您希望包括以下内容:

$(':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 */
    }});


查看完整回答
反对 回复 2019-07-06
?
慕容森

TA贡献1853条经验 获得超18个赞

使用jQuery,以下内容实际上是相同的:

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

带着input事件,但是,在我测试过的浏览器中,似乎只有第二种模式起作用。

因此,您可能认为这是可行的,但它不起作用(至少目前是这样):

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

同样,如果您想利用事件委托(例如,在#container在你input.text(添加到DOM中),应该想到这一点:

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

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

只有这种模式起作用:

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

编辑与更多的最新信息

我可以肯定的是,这种模式:

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

现在,在所有的“标准”浏览器中也可以工作。


查看完整回答
反对 回复 2019-07-06
  • 3 回答
  • 0 关注
  • 580 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信