2013-10-08 35 views
0

我有一個應用程序,當用戶輸入一個字段時,它會對他們輸入的字段執行AJAX驗證。這是使用該字段上的onblur觸發器觸發的。但是,我希望能夠在用戶實際導航離開頁面時停止觸發。如何在執行onblur時「捕獲」並卸載事件

我的輸入字段看起來像

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

,其中當將CheckIt功能只是調用一個AJAX過程驗證輸入。如果輸入無效,則返回錯誤,該錯誤顯示在頁面上的DIV中。除了如果用戶改變了主意並決定離開頁面之外,這一切都很有效,但是在離開之前仍然顯示錯誤div。

所以在我checkIt功能我想一些如何能說,

如果event = unload頁則不會顯示錯誤,並允許用戶導航離開。

我使用的是Oracle APEX,所以有javascriptJQuery可以做到這一點

任何想法?

回答

0

嘗試jQuery的事件的內容的事件:選中此Documentation

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

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

但可以肯定的是仍然會火的onunload事件,這正是我需要停下來,除非我失去了一些東西。爲了清楚起見,如果他們想要離開頁面,那麼讓他們不要觸發onb​​lur/focusout,如果他們點擊頁面上的其他地方,即不離開頁面,然後觸發onb​​lur/focusout –

+0

如果我嘗試捕獲兩個事件,它首先觸發on模糊事件,然後觸發onunload事件。 –

1

focusoutblur沒有做什麼,我想 - 頁卸載之前觸發聚焦元素的blur事件。

使用這個(工作)代碼:

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