HTML <button>是我比较喜欢使用的标签,经常用来取代 <input>标签的type属性值(button,submit,reset)。在我的概念中我觉的<button>是比较有语义性的标签,用它做表单按钮是比较合适的选择。
<button>比<input>更厉害的地方就在于它可以直接包含内容。它的值并不是写在value属性里,而是包含在标签中。
还有在样式美化方面比<input>更具有灵活性。
好像有点偏离主题,我们今天说的是button标签type的默认值。
HTML <button> type Attribute
兼容模式或者是怪癖模式(Quirks mode)标准模式(Standards mode)
引用来自:/zh-cn/causes/HF9015
在IE6 IE7 IE8(Q)中,BUTTON 元素 type 属性的缺省值为 button,不是规范中规定的 submit,这导致未设定 type 属性的 BUTTON 元素此时是一个普通按钮,默认不具备提交功能;在IE8(S) Firefox Chrome Safari Opera中,BUTTON 元素 type 属性的缺省值为 submit,与规范描述相符,所以未设定 type 属性的 BUTTON 元素此时是一个提交按钮,点击该按钮会触发其所在表单的提交事件。
所以,在使用 BUTTON 标签时应明确的为其设定 type 属性,可以避免因为浏览器默认属性值不同导致按钮类型出现差异。
当用到局部刷新时,我们经常使用ajax,但如果使用ajax的html页面中有submit类型的按钮时,系统就会将ajax提交自动转换为submit提交,即局部刷新转成全部刷新,因此,该类页面中的按钮一定要设定属性:type="button"。