HTML表單中button和submit的原理和差異
HTML中submit和button二者都以按鈕的形式展現(xiàn),看起來都是按鈕,但所不同的是type屬性和觸發(fā)響應的事件上,submit會提交表單數(shù)據(jù),而普通的button需要通過js或jq才能提交表單,默認狀態(tài)下沒啥效果。
submit和button兩者主要區(qū)別在于:
1、submit默認為form提交,可以提交表單(form)。submit其實是button的一種特殊的按鈕,他把表單中所有的數(shù)據(jù)集中并提交到了后臺。
2、button作為普通的按鈕則響應用戶自定義的事件,如果不指定onclick等事件處理函數(shù),它是不做任何事情,不會自動提交表單數(shù)據(jù)。當然,button也可以通過JS代碼完成表單提交的工作。比如: onclick="document.form1.submit()"。
3、如果表單在點擊提交按鈕后需要用JS進行處理(包括輸入驗證)后再提交的話,通常都必須把submit改成button,即取消其自動提交的行為,否則,將會造成提交兩次的效果,對于動態(tài)網(wǎng)頁來說,也就是對數(shù)據(jù)庫操作兩次?;蛘咴谑褂胹ubmit時驗證時加return true或false。
4、submit需要有表單時,提交時才會帶數(shù)據(jù)。而button默認是不提交任何數(shù)據(jù)。如果沒有表單的話,又想通過提交某些數(shù)據(jù)給后臺進行回應,則需要通過button,當然使用submit也可以,但是前提要攔截onclick事件。當有表單的時候,如果提交的數(shù)據(jù)很多,那么使用submit比button要好,可以減少很多數(shù)據(jù)的獲取動作。在很多情況下,提交數(shù)據(jù)是要使用JS進行校驗的,但如果這時候用戶禁用了JS,那么校驗就失效了,如果后臺也沒有進行校驗,那么不合法的數(shù)據(jù)就進入后臺了。通常的做法是通過button提交數(shù)據(jù),那么如果用戶禁用JS,那么數(shù)據(jù)提交動作就激活不了,這樣能夠保證提交到后臺的數(shù)據(jù)是經(jīng)過前臺校驗的。
想了解更多?現(xiàn)在就開始免費體驗