jQuery事件处理程序,用于立即更改输入

时间:2011-05-12 19:01:40

标签: javascript jquery forms event-handling onchange

我正在寻找一个(jQuery)事件处理程序,它在input[type="text"]值更改后立即执行一个函数。 .change jQuery事件处理程序在input[type="text"]失去焦点后执行该函数(这可能对另一种情况有利)。

keypress / up / down仅在用户在输入中输入内容时才起作用(而不是在我动态操作它时)。

有没有解决方案?

2 个答案:

答案 0 :(得分:10)

我在这种情况下做的一件事是将同一个处理程序绑定到一堆事件。

$('input').bind("change blur keyup mouseup", function() {
    $(this).css("color", "red"); // or whatever you want to happen
});

请参阅http://api.jquery.com/bind/

答案 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提到的程序添加这些事件侦听器。