使用jquery检查输入表单的更好方法

时间:2012-10-24 23:54:11

标签: jquery forms events event-handling onchange

我知道检查表单的最快捷方式可以是.keyup().keydown(),但是如果用户复制/粘贴某些文本呢?将丢失Tha事件,但输入中的内容可能已更改。

此外,如果用户按下(或允许)例如事件将触发查询的 alt 键(在我的情况下无用)。

是否有类似的事件处理程序,如“文本更改”,但实时检查?像onchange但是作为处理程序。

2 个答案:

答案 0 :(得分:1)

您始终可以使用bind()JQuery方法检查用户是否复制/粘贴文本。 Stack Overflow上有一个类似的问题,可以在这里找到:How do you handle oncut, oncopy, and onpaste in jQuery?

答案 1 :(得分:1)

(function($){
    $.fn.oneinput = function(callback) {        
        function testInput(){ 
            var tb = jQuery(this);
            var currentValue = tb.val();
            if (tb.data("lastInput") !== currentValue ) {
                tb.data("lastInput",currentValue );
                if(callback) { 
                    callback.call(this) 
                };
            }
            return this;
        }    
        $(this).bind("keyup input paste", testInput);
    };
}(jQuery));

$('input').oneinput( function(){ console.log(this.value); });