我試圖連接每個表單元素上的事件偵聽器,然後檢查是否提交。我不希望表單提交,而是等待1秒鐘後才能提交。雖然表單已經提交,但我希望它能從表單中得到結果console.log()
。下面的代碼應該工作,但它並不:延遲表單提交後的preventDefault()
$("form").each(function() {
$(this).on("submit", function(e) {
e.preventDefault();
var form = $(this);
setTimeout(function() {
form.submit();
}, 1000);
var data = $(this).serialize();
console.log(data);
});
});
我得到的問題是要麼保持事件監聽了,因此,它基本上運行到一個無限循環或不提交表單。我究竟做錯了什麼?
編輯:各位downvoting這樣的:爲什麼呢?我知道我不應該爲表單提交引入延遲,但是這是爲我自己的項目而設計的,我等待一秒就完全可以。
我的意思是爲什麼?爲什麼你會讓你的網站反應遲鈍?這聽起來像一個[XY問題(https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) – Liam
嘗試區分提交你從你不要一個需要。 – jidexl21
@ jidexl21我需要點擊頁面上的每個提交,所以這不是一個選項。 – MortenMoulder