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

如何在Javascript中获取HTML页面的活动元素,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我有一个HTML页面,它只有一个输入文本框和一个按钮。 我为输入文本框设置了blur事件处理程序,在这里我调用了一个ajax调用,它只进行验证,然后显示错误。 类似地,我在按钮上放置了onclick事件,在这里我再次调用不同的Ajax调用,该调用也进行验证,如果验证通过,那么它也进行一些DB更新,然后重定向到其他URL 我的要求是,如果用户将焦点放在输入框上,然后他只需单击按钮(不失去焦点),那么只有按钮ajax调用才会启动。然而,我看到两个ajax调用,一个用于onblur,另一个用于oncl

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

我的要求是,如果用户将焦点放在输入框上,然后他只需单击按钮(不失去焦点),那么只有按钮ajax调用才会启动。然而,我看到两个ajax调用,一个用于onblur,另一个用于onclick

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

请让我们知道如何在所有浏览器中处理此问题

谢谢,
苏拉布

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

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

这是sudo代码,因为我不知道您的源代码,您可以对onblur执行相同的操作

保持简单-删除按钮或删除模糊处理程序。IMO后者更好,因为用户希望单击按钮启动操作。也许此解决方案可以帮助您: