理解button標簽的默認行為


  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按鈕的行為:

   

  IE瀏覽器IE8及以后的版本,會根據頁面使用的文檔模式(Defining document compatibility)來定義按鈕的兼容性問題。IE8標准模式的默認行為是submit,其他模式的默認行為是button。

  請參考:http://msdn.microsoft.com/en-us/library/ms534696%28v=vs.85%29.aspx

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM