JQuery更改事件问题

时间:2011-08-05 17:22:38

标签: jquery

我遇到Change事件的问题。我希望每次输入值改变时使用ajax做一个请求= keyup,past,cut .... jQuery中的change事件太慢!!

$("#Password").change(function (){
    $.post("register.php", {do : 'password', pass : $(this).val()}, function (data){
        alert(data);
    });
});

每一个我打开一个名为 Elastic 的插件,我找到了我要找的东西:

$(Your Selectors).bind('keyup change cut paste', function(){
    //do things
});

这是完美的^^ !!

2 个答案:

答案 0 :(得分:1)

如果您愿意,可以做一些事情来涵盖所有基础:

$("#Password").bind('action_taken',function (){
    $.post("register.php", {do : 'password', pass : $(this).val()}, function (data){
        alert(data);
    });
}).blur(function(){
       $(this).trigger('action_taken'); //call action_taken on blur
}).change(function(){
       $(this).trigger('action_taken'); //call action_taken on change
}).keyup(function(){
       $(this).trigger('action_taken'); //call action_taken on keyup
});

答案 1 :(得分:0)

我猜你可以选择将输入值存储在一个变量中,并且只有当该字段具有触发你的ajax请求的焦点时才检查keyup(并将当前值与之前的值进行比较)。

您可以使用document.activeElement或jquery 1.6 +,:focus选择器

获取焦点元素

对于使用鼠标粘贴的问题,您可以重复使用eventlistener进行鼠标左键单击