搜了一下国内关于 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 !
如有问题 , 请大家指出 , 谢谢 !