我有一个HTML页面,其后只有一个输入文本框和一个按钮。 我已经为输入文本框放了onblur事件处理程序,我在其中调用ajax调用,它只进行验证,然后显示错误。 类似地,我在按钮上放了onclick事件,我再次调用不同的Ajax调用,它也进行验证,如果验证通过,那么它也会进行一些数据库更新,然后重定向到另一个URL。
我的要求是,如果用户专注于输入框,然后他只需点击按钮(不会失去焦点),那么只有按钮ajax调用才会触发。但是,我看到两个ajax调用一个用于onblur,一个用于onclick正在触发。
我尝试在onblur中使用event.relatedtarget来查看它是否在点击按钮时生成。但它只适用于chrome。我也检查了document.activeelement。这也行不通。
请告诉我们如何在所有浏览器中处理此问题。
谢谢, Sourabh
答案 0 :(得分:0)
你可以像这样设置一个全局标志
var submitting = false;
$('#button').click(function(){
if (!submitting) {
submitting = true;
$.ajax({
url: 'whateverurl.php',
success: function(data) {
submitting = false;
}
});
}
});
这是sudo代码,因为我不知道你的来源,你会为你的onblur做同样的事情