关于 input[type="button"] , button

搜了一下国内关于 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 !

 

如有问题 , 请大家指出 , 谢谢 !

 

 

 

 

 



posted @ 2012-10-16 18:17  张坤  阅读(4166)  评论(1编辑  收藏  举报