在做onblur时如何“捕获”和卸载事件

时间:2013-10-08 08:14:39

标签: javascript jquery html ajax

我有一个应用程序,当用户输入字段时,它会对他们输入的字段执行AJAX验证。这是使用字段上的onblur触发器触发的。但是,我希望能够在用户实际离开页面时停止此触发。

我的输入字段类似于

<input type="text" onblur="checkIt(this.value);" id="name" />

其中checkIt函数只调用AJAX进程来验证输入。如果输入无效,则返回错误,该错误显示在页面上的DIV中。这一切都很有效,除非用户改变主意并决定离开页面,错误div仍会在导航之前显示。

所以在我的checkIt函数中,我想要一些如何能够说,

如果event = unload页面没有显示错误并允许用户离开。

我正在使用Oracle APEX,因此可以使用javascriptJQuery来执行此操作

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

focusoutblur没有做我想要的事情 - 在页面卸载之前触发焦点元素的模糊事件

使用此(工作)代码:

window.onbeforeunload = function(e){
  $(document.activeElement).blur();
}

答案 1 :(得分:0)

尝试jquery focusout事件:检查此Documentation

<input id="test" type="text"><br>

<script>
        $(document).ready(function(){    
        $( "#test" ).focusout(function() {
           alert("Focus out");
        }).blur(function() {    
            alert("Blur Event");
          });
        });
</script>