亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jQuery的$(form).submit();應該嗎?不在表單標簽內觸發onSubmit嗎?

jQuery的$(form).submit();應該嗎?不在表單標簽內觸發onSubmit嗎?

搖曳的薔薇 2019-09-26 10:28:46
jQuery的$(form).submit();應該嗎?不在表單標簽內觸發onSubmit嗎?我有以下內容:<script type="text/javascript">function CancelFormButton(button) {     $(button.form).submit();}</script><form onsubmit="alert('here');"><input type="button" value="Cancel" onClick="CancelFormButton(this);" /></form>當我單擊“取消”按鈕時,不會觸發來自表單標簽的onsubmit。該行將成功提交表單:$(button.form).submit();但是跳過alert('here');form標記中onsubmit中的。這是正確的還是我做錯了什么?順便說一句,在這種情況下,我需要此功能,但是我只是想知道是否在觸發onsubmit的瀏覽器中遇到問題。
查看完整描述

3 回答

?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

抱歉,誤解了您的問題。

根據Javascript-在調用form.submit()時捕獲onsubmit

最近有人問我:“為什么使用JavaScript提交表單時,為什么不會觸發form.onsubmit事件?”

答案:當前的瀏覽器不遵守html規范的這一部分。該事件僅在用戶激活時觸發,而在代碼激活時不觸發。

(強調)。

注意: “由用戶激活”還包括單擊提交按鈕(可能包括回車鍵的默認提交行為,但我沒有嘗試過)。我相信,如果您(使用代碼)單擊提交按鈕,也不會觸發該事件。


查看完整回答
反對 回復 2019-09-26
?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

我想在某些情況下希望這種行為是合理的,但是我認為不觸發表單提交的代碼應該(始終)是默認行為。假設您想通過以下方式捕獲表單的提交

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

然后對輸入進行一些驗證。如果代碼可以觸發提交處理程序,則您永遠都不能包含

$("form").submit()

在此處理程序中,因為這將導致無限循環(將調用SAME處理程序,以防止提交,驗證和重新提交)。您需要能夠在提交處理程序中手動提交表單,而無需觸發相同的處理程序。

我意識到這并不能直接回答問題,但是此頁面上還有許多其他有關如何破解此功能的答案,我認為需要指出(而且評論太長了)。


查看完整回答
反對 回復 2019-09-26
  • 3 回答
  • 0 關注
  • 1359 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號