1.form 中type 為submit 和button的區別
submit是button的一個特例,也是button的一種,它把提交這個動作自動集成了。
如果表單在點擊提交按鈕后需要用JS進行處理(包括輸入驗證)后再提交的話,通常都必須把submit改成button,即取消其自動提交的行為,否則,將會造成提交兩次的效果,對於動態網頁來說,也就是對數據庫操作兩次。或者在使用submit時驗證時加return true或false。
submit和button,二者都以按鈕的形式展現,看起來都是按鈕,所不同的是type屬性和處發響應的事件上,submit會提交表單,button不會提交表單.
兩者主要區別在於:
submit默認為form提交,可以提交表單(form).
button則響應用戶自定義的事件,如果不指定onclick等事件處理函數,它是不做任何事情.當然,button也可以完成表單提交的工作.
INPUT type=submit 即發送表單,按回車提交表單
INPUT type=button 就是單純的按鈕功能,提交的是innerTEXT
2.本人所做的一個小實例
<form id="search-form" > <input type="text" name="keyword" placeholder="搜索明星名稱"/> <input type="hidden" name="category" value="明星"/> <button type="button" onclick="changeKeyword(this);">搜索</button> </form>
在按下這個按鈕的時候並不想它直接提交,而是去執行一個函數。就可以這樣寫,把type改成button就會去執行函數.
這時候又遇到了另外一個問題,我想得到keyword里面輸入的關鍵字該怎么辦,解決方法。
function changeKeyword(elem){
var $form = $(elem).parents("form");
console.log($form.serialize());
}
這個就會把整個form里面的值都打印出來。
如果要得到單個的值,也可以這樣
function changeKeyword(elem){
var val = $("input[name=keyword]").val();
console.log(val);
}
這樣就可以得到keyword的值