使用按钮标签时,是否必须定义 type 属性,还是仅具有语义?
<button>Click Me</button>
不,您不必指定它,它默认为 value submit
。
请参阅HTML 4.x 规范:
type (button|submit|reset) submit -- for use as form button --
^^^^^^ default value
与显示 #REQUIRED 而不是给出默认值的表单的 action 属性进行比较。
action %URI; #REQUIRED -- server-side form handler --
正如@Quentin 的回答所解释的,该type
属性不是必需的,默认为submit
. HTML5 对此没有任何改变。但是,情况稍微复杂一些。
如果元素出现在任何form
元素之外,上述仍然适用,但没有要提交的表单。HTML5 通过描述功能来澄清这一点,以便清楚地表明,如果没有“表单所有者”(封闭form
元素或与具有 HTML5 属性的form
元素显式关联的button
元素),则没有任何动作——除非使用脚本编程, 当然。
实际上,这意味着在form
元素之外,button
元素默认为type=button
功能性的。这意味着如果一个默认的button
元素type
改变了它的上下文(例如,被包裹在一个form
元素中),它的功能也会改变。因此,为了清楚和安全起见,最好明确指定type
属性,例如<button type=button>
or <button type=submit>
。