我正在寻找一个(jQuery)事件处理程序,它在input[type="text"]
值更改后立即执行一个函数。 .change
jQuery事件处理程序在input[type="text"]
失去焦点后执行该函数(这可能对另一种情况有利)。
keypress
/ up
/ down
仅在用户在输入中输入内容时才起作用(而不是在我动态操作它时)。
有没有解决方案?
答案 0 :(得分:10)
我在这种情况下做的一件事是将同一个处理程序绑定到一堆事件。
$('input').bind("change blur keyup mouseup", function() {
$(this).css("color", "red"); // or whatever you want to happen
});
答案 1 :(得分:4)
首先,即使您使用val
函数动态更改它,我也会修改JQuery更改事件。对我来说这真的没有意义,为什么这不是JQuery中的默认行为。以下是执行此操作的代码:
//Store the old val function
$.fn.custom_oldVal = $.fn.val;
//Update the val function to fire the change event where appropriate:
$.fn.val = function(value) {
if(value == null || value == undefined){
return this.custom_oldVal();
} else {
//Only call onchange if the value has changed
if(value == this.custom_oldVal()){
return this;//Return this object for chain processing
} else {
return this.custom_oldVal(value).change();
}
}
}
如果您需要在其他时间触发,请按照jimbojw提到的程序添加这些事件侦听器。