【问题标题】:jQuery blur keeps firing when two inputs are involved当涉及两个输入时,jQuery模糊会继续触发
【发布时间】:2014-08-07 23:06:28
【问题描述】:

我在 Google 和 Stack Overflow 上搜索了一段时间,但找不到与此相关的任何内容。

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

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

任何想法如何平静模糊,使其不会不断开火?可能有一些非常简单的事情我没有做,这可能会解决这个问题。

这是代码(忽略 {{}} 和 {%%} 标签,这是一个 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');


        });

任何想法将不胜感激。

【问题讨论】:

    标签: jquery


    【解决方案1】:

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

    如果输入不为空,也许只发送 AJAX 请求来解决它?

    这是真的需要alert 还是只是为了调试?这是一个很好的例子,为什么你不应该使用alert 进行调试。使用console.log

    【讨论】:

    • 警报仅用于调试。那么当点击页面其余部分的单个输入时,不会出现问题吗?
    • 好的,那么如果你只是删除它,它应该不会发疯了。不妨试试console.log,这样就不会影响功能了。
    • 如果我删除它,它似乎会停止它。所以它解决了我的问题(谢谢!)。我仍然不能 100% 确定警报如何导致输入认为它被模糊,然后集中,然后模糊..等等,但它仍然有效,再次感谢您。
    • alert 在弹出时获得焦点(输入模糊)。然后,当您在警报上单击确定时,焦点将返回到输入。然后来自模糊的 ajax 返回导致这一切再次发生,并且永远持续下去。
    【解决方案2】:

    您的问题是alert() 本身。

    它在显示时将焦点从输入中移开,因此它会不断重复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-25
      相关资源
      最近更新 更多