忽略对jquery.change的关注

时间:2015-05-11 07:56:03

标签: javascript jquery html

例如,我有以下代码:

    $(".someSelector").change(function()
    {
        // Do something

        // Call function

        // console.log('test')

    });

问题是,它被调用两次:每当我失去输入字段的焦点以及值何时改变。

我希望只有在值发生变化时才会调用它。

除了将旧输入值与新输入值进行比较之外,有没有办法忽略.change上的焦点丢失?

2 个答案:

答案 0 :(得分:4)

您应该使用input event代替change

每次更改值都会触发

input(包括粘贴);当值发生变化时,change将触发模糊。

$(".someSelector").on('input', function() {
    // Do something
});

input事件为supported by IE9+

答案 1 :(得分:1)

以下是我认为适用于你的另一个问题的答案:

您可以绑定'输入'事件到文本框。每次输入更改时都会触发,因此当您粘贴某些内容时(即使右键单击),删除并键入任何内容。

$('#myTextbox').on('input', function() {
    // do something
});

如果您使用更改处理程序,则只有在用户取消选择输入框后才会触发,这可能不是您想要的。

来源:JQuery: detect change in input field