2016-02-10 95 views
1

我將如何繼續關於提交使用e.preventDefault()的jQuery攔截的表單?很明顯,如果我只是撥打$(form).submit()就不會提交。以下是我當前腳本的一個示例。使用e.preventDefault提交表單()

$(form).submit(function (e) { 
    e.preventDefault(); 

    // Code... 

    if (true) { 
     $(form).submit(); 
    } else { 
     // Code... 
    } 
}); 

回答

4

因爲您是通過調用jQuery的submit方法造成事件處理遞歸調用(jQuery的submit方法會再次調用處理程序,其中防止默認被稱爲從而阻斷默認動作),而是你可以調用form元素的submit方法,以便事件處理程序不會再次被調用

$(form).submit(function(e) { 
    e.preventDefault(); 
    var self = this; 

    // Code... 

    if (true) { 
    self.submit(); 
    } else { 
    // Code... 
    } 
}); 
+0

Welp,我現在不覺得愚蠢。我應該看到了。雖然謝謝! –

+1

'var form = this;'在這裏看起來多餘 –

+0

@ A.Wolff是......做到了,因爲OP沒有共享完整的代碼......所以不知道'form'是什麼 –

3

調用本地DOM方法來代替:

form.submit(); 

這不火的jQuery方法結合submit事件。