我已经在谷歌上挖了一段时间,在这里堆栈溢出,找不到与此相关的任何内容。
我有多个输入文本字段,当模糊时调用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:" "}}" 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');
});
非常感谢任何想法。
答案 0 :(得分:5)
alert
导致您再次失去焦点,触发另一个AJAX请求。
如果输入不为空,可能只通过发送AJAX请求来修复它吗?
这是alert
真的需要还是仅用于调试?这是为什么不应该使用alert
进行调试的一个主要示例。使用console.log
。
答案 1 :(得分:3)
您的问题是alert()
本身。
当显示输入时,它会将焦点从输入上移开,以便不断重复出现。