2013-05-02 54 views
0

嗨,我想知道如何判斷事件是否在2.5秒內發生火災。如何傾聽提交事件。

這是由其他開發人員編寫的外部函數。

function validateAndSubmit() { 
    if (validateRule(document.getElementById("inputElem").value) { 
     document.form.submit; 
    } else { 
     alert ("Value is wrong"); 
    } 
} 

<input type="button" onclick="validateAndSubmit();" id="updatePage"/> 

我有一個jQuery的監聽器。

$("#updatePage").click(function() { 
     popupWaitingDialog(); 
     setTimeout(function() { 
      // insert code to see if submit was fire causing page to load or unload. 
      hideWaitingDialog(); 
     }, 2500); 
}); 

我有一個等待顯示的對話框,如果驗證失敗,我希望能夠隱藏它。我知道驗證失敗的唯一方法是如果提交或重新加載事件觸發。

+0

顯示在'validateAndSubmit等待對話()。 – Barmar 2013-05-02 04:37:01

回答

1

彈出添加到提交功能:

function validateAndSubmit() { 
    if (validateRule(document.getElementById("inputElem").value) { 
     popup WaitingDialog(); 
     document.form.submit(); 
    } else { 
     alert ("Value is wrong"); 
    } 
} 

然後,您可以刪除click處理程序。或者,你可以保持click處理器,添加驗證代碼檢查有:``調用前document.form.submit()`

$("#updatePage").click(function() { 
    popupWaitingDialog(); 
    validateAndSubmit(); // Doesn't return unless validation fails 
    hideWaitingDialog(); 
}); 
+0

謝謝但validateAndSubmit是另一個Web應用程序中的外部函數。這意味着我無權改變它。它是一個嵌入式iframe應用程序。 – 2013-05-02 13:30:23

+0

我添加了一個調用validateAndSubmit而不更改它的版本。 – Barmar 2013-05-02 13:57:58

+0

感謝,因爲它是iframe我不得不通過$(#iframe)[0] .contentWindow.validateAndSubmit(); – 2013-05-08 15:19:42