表單提交中button和(hé)submit的(de)區(qū)别
submit是button的(de)一個(gè)特例,也(yě)是button的(de)一種,它把提交這(zhè)個(gè)動作自動集成了(le),submit和(hé)button,二者都以按鈕的(de)形式展現,看起來(lái)都是按鈕,所不同的(de)是type屬性和(hé)處發響應的(de)事件上。
1、 如果表單在點擊提交按鈕後需要用(yòng)JS進行處理(lǐ)(包括輸入驗證)後再提交的(de)話(huà),通(tōng)常都必須把submit改成button
如果需要使用(yòng)submit提交前驗證的(de)話(huà) 應在方法前加return
如一個(gè)登陸模塊,先驗證用(yòng)戶名是否爲空,如果爲空,SUBMIT點擊時(shí)永遠(yuǎn)提交不到from表單指定頁面。隻能是表單形式發送噢!而且不能再表單指定的(de)頁面中去驗證傳進來(lái)的(de)值。
function check(){
var name = document.getElementById("name").value;
if(name == null || name == ''){
alert("用(yòng)戶名不能爲空");
return false;
}
return true;
}
<form name="form" action="跳轉的(de)頁面" method="post" onsubmit="return check()">
</form>
2、submit和(hé)button,二者都以按鈕的(de)形式展現,看起來(lái)都是按鈕,所不同的(de)是type屬性和(hé)處發響應的(de)事件上,submit會提交表單,button不會提交表單.
兩者主要區(qū)别在于:
submit默認爲form提交,可(kě)以提交表單(form).
button則響應用(yòng)戶自定義的(de)事件,如果不指定onclick等事件處理(lǐ)函數,它是不做(zuò)任何事情.當然,button也(yě)可(kě)以完成表單提交的(de)工作.
INPUT type=submit 即發送表單,按回車提交表單
INPUT type=button 就是單純的(de)按鈕功能,提交的(de)是innerTEXT
<input type="text" id="name"/>
<input type="submit" value="提交"/>
===============submit 和(hé) button的(de)詳細對(duì)比===================================
submit:特殊的(de)button,會自動将表單的(de)數據提交,onClick方法不加return 會自動提交,并不會起到約束的(de)作用(yòng),
所以,使用(yòng)submit時(shí)需要驗證請加 return true或false.
例:<input type="submit" name="Submit" value="注 冊" onClick=" return check();">,在JS中判斷的(de)時(shí)候 寫return true; 或者 return false;
button:普通(tōng)的(de)按鈕,不會自動提交表單數據.可(kě)以在JS中顯式提 交:document.form1.submit(),
使用(yòng)場(chǎng)合: 一個(gè)頁面有多(duō)個(gè)提交按鈕,需要根據用(yòng)戶的(de)操作來(lái)确定到底提交到哪個(gè)控制器,這(zhè)種情況下(xià),就需要在JS中判斷用(yòng)戶的(de)操作,然後根據操作來(lái)給document.form1.action賦值并且document.form1.submit()來(lái)提交
===============如果想要所有的(de)提交都在一個(gè)servlet中處理(lǐ),該怎麽做(zuò)==================
提交的(de)按鈕也(yě)是HTML組件,所以也(yě)可(kě)以通(tōng)過 getParameter()來(lái)得(de)到,那麽getParameter()的(de)參數也(yě)需要固定下(xià)來(lái)
參數就是所有的(de)表單的(de)提交按鈕的(de)name,當然提交
按鈕的(de)name要一樣才能統一在一個(gè)servlet中根據提交按鈕的(de)值來(lái)區(qū)别操作