2013-06-22 41 views
0

我正在寫Javascript/JQuery代碼,在提交它之前我想攔截表單提交,因爲我需要檢查這些字段是否有效。在試圖攔截表單提交時陷入無限循環

因此,我阻止發生的默認事件,檢查我想要的,然後再次發生事件,如果一切正常。問題是,這會觸發完全相同的功能,並陷入無限循環。

有沒有辦法解決這個問題?我可以考慮解決問題,但畢竟這是解決問題的辦法,而不是最優雅的解決方案。

這裏是我的代碼:

  $("#register_form").submit(function(event) { 
       event.preventDefault(); 
       console.log('form submit attempt'); 
       checkUsername(); 
       $("#register_form").submit(); 
      }); 
+0

刪除第二和倒數第二行? (或防止默認情況下,只有在func的末尾,如果有東西不行) – bwoebi

+0

是checkUsername()函數中是否包含ajax調用? 如果是,那麼你需要刪除$(「#register_form」)。 並將此刪除的行添加到ajax調用的成功 – Swapnil

回答

0

爲了能夠停止的形式提交,如果有錯誤,你從功能需要return false。你需要確保checkUsername()函數返回布爾值。

嘗試......

$("#register_form").submit(function(event) {      
    if(checkUsername()) 
     return true; 

    return false;  

}); 

甚至更​​好...

$("#register_form").submit(function(event) {      
     return checkUsername();      
}); 
+0

謝謝!很棒! – projvee

+0

很高興我能幫忙:) – simonlchilds