button標簽的作用和它的名字一樣,在絕大多數場合當做按鈕來使用。
很多人在使用button按鈕的時候出現過這樣或者那樣的問題,比如:自動提交表單、一次提交表單多次submit行為,有的瀏覽器下點擊button按鈕提交表單有的無任何反應。理解它的默認行為會幫助我們從原理上分析問題,解決問題。
一、button按鈕的type屬性
button按鈕的type屬性有三種:submit、button、reset.
如果form內的button按鈕有type=submit屬性則,按鈕會有默認的提交行為,reset屬性會讓按鈕具備重置表單的行為,button屬性會讓按鈕do nothing。如果編寫頁面時不忘寫上button的type屬性,那么一切異常行為都不會出現。
二、如果忘記type屬性
很多人在編碼時經常忘記或者不寫type屬性。問題往往就出現在這里。
試試下面的代碼會發生什么?
<form id="mobile_reg_form" onsubmit="alert(1);return false;" style="border:1px solid ;">
<fieldset>
<label>手機號:</label><input type="text" class="" placeholder="輸入手機號" name="account">
<button class="chkbtn">獲取驗證碼</button>
</fieldset>
</form>
點擊"獲取驗證碼"按鈕:
IE6、7:無明顯行為;
其他瀏覽器 :alert(1)
在沒有定義type屬性的情況下,button按鈕的行為:
請參考:http://msdn.microsoft.com/en-us/library/ms534696%28v=vs.85%29.aspx