如何在Javascript中获取HTML页面的活动元素

时间:2015-03-04 15:45:21

标签: javascript jquery html ajax

我有一个HTML页面,其后只有一个输入文本框和一个按钮。 我已经为输入文本框放了onblur事件处理程序,我在其中调用ajax调用,它只进行验证,然后显示错误。 类似地,我在按钮上放了onclick事件,我再次调用不同的Ajax调用,它也进行验证,如果验证通过,那么它也会进行一些数据库更新,然后重定向到另一个URL。

我的要求是,如果用户专注于输入框,然后他只需点击按钮(不会失去焦点),那么只有按钮ajax调用才会触发。但是,我看到两个ajax调用一个用于onblur,一个用于onclick正在触发。

我尝试在onblur中使用event.relatedtarget来查看它是否在点击按钮时生成。但它只适用于chrome。我也检查了document.activeelement。这也行不通。

请告诉我们如何在所有浏览器中处理此问题。

谢谢, Sourabh

1 个答案:

答案 0 :(得分:0)

你可以像这样设置一个全局标志

var submitting = false;
$('#button').click(function(){
    if (!submitting) {
        submitting = true;
        $.ajax({
           url: 'whateverurl.php',
           success: function(data) {
               submitting = false;
           }
        });
    }
});

这是sudo代码,因为我不知道你的来源,你会为你的onblur做同样的事情