当涉及两个输入时,jQuery模糊会持续触发

时间:2011-07-01 15:59:54

标签: jquery

我已经在谷歌上挖了一段时间,在这里堆栈溢出,找不到与此相关的任何内容。

我有多个输入文本字段,当模糊时调用jQuery AJAX函数到服务器。它几乎可以很好地工作。

问题是如果我专注于一个文本输入然后单击另一个(使其成为焦点)。使用AJAX调用服务器和警报时,模糊事件不断被触发。

任何想法如何平静模糊,以免不断射击?可能有一些非常简单的事情我不会这样做可能会解决这个问题。

以下是代码(忽略{{}}和{%%}代码,这是django模板。

输入:

    <td class="tracking-text">CK Req:</td><td class="tracking-td"><input class="tracking-input" type="text" value="{{pr.checkreq|default_if_none:"&nbsp"}}" size="10"></td>
    <td class="tracking-text">LPD:</td><td class="tracking-td"><input class="tracking-input" type="text" value="{{pr.lpd|default_if_none:""}}" size="10"></td>
    <td class="tracking-text">PR#</td><td class="tracking-td"><input class="tracking-input" type="text" value="{{pr.prnumber|default_if_none:""}}" size="10"></td>
    <td class="tracking-text">DATE:</td><td class="tracking-td"><input class="tracking-input" type="text" value="{{pr.prdate|default_if_none:""}}" size="10"></td>

jQuery:

        $('.tracking-input').blur(function(){

            $.post( "{% url buy.views.update_purchase_ajax %}",
                {pr_pk: $('span#pr_pk').html()},
                function(data){
                    alert(data.message);
                }, 'json');


        });

非常感谢任何想法。

2 个答案:

答案 0 :(得分:5)

alert导致您再次失去焦点,触发另一个AJAX请求。

如果输入不为空,可能只通过发送AJAX请求来修复它吗?

这是alert真的需要还是仅用于调试?这是为什么不应该使用alert进行调试的一个主要示例。使用console.log

答案 1 :(得分:3)

您的问题是alert()本身。

当显示输入时,它会将焦点从输入上移开,以便不断重复出现。