<button>和 <input type="button">的区别

681 阅读1分钟

原文出处

<button> 控件 与 <input type="button"> 相比提供了更为强大的功能和更丰富的内容<button></button> 标签之间的所有内容都是按钮的内容,其中包括任何可接受的正文内容,比如文本或多媒体内容。 例如,我们可以在按钮中包括一个图像和相关的文本,用它们在按钮中创建一个吸引人的标记图像。

唯一禁止使用的元素是图像映射,因为它对鼠标和键盘敏感的动作会干扰表单按钮的行为。<map> <area>标签)

请始终为按钮规定 type 属性。Internet Explorer 的默认类型是 "button",而其他浏览器中(包括 W3C 规范)的默认值是 "submit"。

无意中把<button>标签放到了<form>标签中,你会发现点击这个 button 变成了提交,相当于 <input type="submit"/> ; Internet Explorer 的默认类型是 "button",而其他浏览器中(包括 W3C 规范)的默认值是 "submit"。

注意事项

在使用<button>标签时很容易想当然的当成 <input type="button"> 使用,这很容易产生以下几点错误用法:

  1. 通过$('#customBtn').val()获取<button id="customBtn" value="test">按钮</button> value 的值

    <button id="customBtn" value="test">按钮</button>

    Browser/Value$('#customBtn').val()$('#customBtn').attr('value')
    Firefox13.0testtest
    Chrometesttest
    Opera11.61testtest
    Safari5.1.4testtest
    IE9.0按钮按钮
  2. 无意中把<button>标签放到了<form>标签中,你会发现点击这个 button 变成了提交,相当于<input type="submit"/>

    这一点参见上面第三段的话就明白什么意思了。 不要把<button>标签当成<form>中的 input 元素。

<html>
  <body>
    <form action="">
      <!-- eq -->
      <button>button</button>
      <input type="submit" value="input submit" />
      <!--  type="button" 修改type类型 -->
      <input type="button" value="input button" />
    </form>
  </body>
</html>