搜了一下國內關於 input , button 文章 ,
大多數內容如下 : http://lfx-cool.iteye.com/blog/427286
好像沒有那篇文章專門來介紹 input[type="button"] 和 button 的前世今生 ,
也沒有從規范,語義等方面講解什么時候該用那個,什么時候不該用那個,
當然這也不是本文的重點 ,
喜歡用那個純屬個人習慣(沒有規范和語義標准時) , 個人比較喜歡用 button ,
因為 button 有 input[type="button"] 所有的功能且可以包含內容 ,
個人覺得 button 的語義相對更明確一些 ,
input 標簽的 type 應該是沒有默認值的 , w3c 上面沒有做說明 http://www.w3school.com.cn/tags/tag_input.asp
如果 input 的 type 為空 , 默認會顯示為 input 文本框 (只測試了部分瀏覽器) , 可以正常的輸入 , 提交值 ,
當然 jQuery(':text') 是獲取不到的 ,
button 標簽的 type 是有默認值的 , 而且各瀏覽器默認值還不一樣 ,
w3c : 請始終為按鈕規定 type 屬性。Internet Explorer 的默認類型是 "button",而其他瀏覽器中(包括 W3C 規范)的默認值是 "submit"。
http://www.w3school.com.cn/tags/tag_button.asp
問題就出在這 , 項目中 , 不同的 開發者 有的給 button 指定了 type , 有的默認 , 最后不同的瀏覽器 就不一樣了 , 然后就 bug 了 ,
測試結果如下:
非 ie , 是按照 w3c 標准 , button type 默認是 submit 的,
ie , w3c 官方說 button type 默認是 button ,
大家都知道 ie 目前有 ie 6,7,8,9 等 4 個 版本 ,
ie8+ button type 默認是 submit
ie7 button type 默認是 button
ie6 沒有測試 , 我想應該和 ie7 一致的 !
最后提醒 : 使用 button 時 請盡量給 button 指定默認 type !
如有問題 , 請大家指出 , 謝謝 !