3 回答

TA貢獻1797條經(jīng)驗 獲得超6個贊
抱歉,誤解了您的問題。
根據(jù)Javascript-在調(diào)用form.submit()時捕獲onsubmit:
最近有人問我:“為什么使用JavaScript提交表單時,為什么不會觸發(fā)form.onsubmit事件?”
答案:當(dāng)前的瀏覽器不遵守html規(guī)范的這一部分。該事件僅在用戶激活時觸發(fā),而在代碼激活時不觸發(fā)。
(強調(diào))。
注意: “由用戶激活”還包括單擊提交按鈕(可能包括回車鍵的默認提交行為,但我沒有嘗試過)。我相信,如果您(使用代碼)單擊提交按鈕,也不會觸發(fā)該事件。

TA貢獻1828條經(jīng)驗 獲得超4個贊
我想在某些情況下希望這種行為是合理的,但是我認為不觸發(fā)表單提交的代碼應(yīng)該(始終)是默認行為。假設(shè)您想通過以下方式捕獲表單的提交
$("form").submit(function(e){ e.preventDefault();});
然后對輸入進行一些驗證。如果代碼可以觸發(fā)提交處理程序,則您永遠都不能包含
$("form").submit()
在此處理程序中,因為這將導(dǎo)致無限循環(huán)(將調(diào)用SAME處理程序,以防止提交,驗證和重新提交)。您需要能夠在提交處理程序中手動提交表單,而無需觸發(fā)相同的處理程序。
我意識到這并不能直接回答問題,但是此頁面上還有許多其他有關(guān)如何破解此功能的答案,我認為需要指出(而且評論太長了)。
添加回答
舉報