例如,我有以下代码:
$(".someSelector").change(function()
{
// Do something
// Call function
// console.log('test')
});
问题是,它被调用两次:每当我失去输入字段的焦点以及值何时改变。
我希望只有在值发生变化时才会调用它。
除了将旧输入值与新输入值进行比较之外,有没有办法忽略.change上的焦点丢失?
答案 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
});
如果您使用更改处理程序,则只有在用户取消选择输入框后才会触发,这可能不是您想要的。