鍍金池/ 問(wèn)答/HTML/ JavaScript監(jiān)聽(tīng)form表單提交

JavaScript監(jiān)聽(tīng)form表單提交

樓主遇到一個(gè)問(wèn)題,項(xiàng)目比較古老,代碼中多使用行內(nèi)js來(lái)進(jìn)行運(yùn)作。
但是遇到一個(gè)關(guān)于表單提交的問(wèn)題,涉及的頁(yè)面比較多,不太好改!
問(wèn)題
表單是使用行內(nèi)js onclick=“submit()” 這樣的方式來(lái)進(jìn)行交互的,代碼使用

document.form1.submit(); // 來(lái)進(jìn)行提交

在這樣的情況下 我如何使用js監(jiān)聽(tīng)這個(gè)form表單的submit事件呢?或者是其他的解決方發(fā)!
感謝

回答
編輯回答
愿如初

根據(jù)標(biāo)準(zhǔn)form.submit是最后的提交手段,中間沒(méi)有事件捕捉,正常的方法是
1,按鈕響應(yīng)按鈕操作,在函數(shù)中調(diào)用form.submit(例子如下)
2,為form增加onsubmit,按鈕采用input:submit來(lái)進(jìn)行表單提交(例子略)
不正常的方法,重載form的submit方法,調(diào)用submit按鈕的點(diǎn)擊方法進(jìn)行提交.(例子如下)

http://js.do/code/overridesubmit

收獲:
原生方法也可以被覆蓋!

代碼如下:

<p>
不正常的方法
<form name='form1' id=form1 method='post' action='http://www.baidu.com'>
<input type=text name='n' value=1 >
<input type=button onclick='submit()' name='n' value='test'>
<input style='display:none' type=submit id='post'>
</form>

<script>

form1.submit=function(){let oldsubmit=this.submit;alert(oldsubmit);post.click()}

</script>

</p>
<p>
正常的方法
<form name='form2' id=form1 method='post' action='http://www.baidu.com'>
<input type=text name='n' value=1 >
<input type=button onclick='btnclick()' name='n' value='test'>
</form>

<script>

function btnclick(){
alert('do something');
form2.submit();
}


</script>
</p>
2018年2月27日 16:29
編輯回答
舊酒館

試試這樣?
onclick="fu()";function fu(){your code .....;submit()}

2018年6月22日 05:15