是否必须定义<button> TYPE?</button>

时间:2013-03-15 12:37:16

标签: html button semantics

使用button标签时,是否必须定义type属性,或者只是具有语义?

<button>Click Me</button>

2 个答案:

答案 0 :(得分:2)

不,您不必指定它,它默认为值submit

请参阅the HTML 4.x specification

type        (button|submit|reset) submit -- for use as form button --
                                  ^^^^^^ default value

与表示#REQUIRED而非提供默认值的表单的action属性进行比较。

action      %URI;          #REQUIRED -- server-side form handler --

答案 1 :(得分:1)

正如@ Quentin的回答所解释的那样,type属性不是必需的,默认为submit。 HTML5中没有对此进行任何更改。但情况稍微复杂一些。

如果元素出现在任何form元素之外,则上述内容仍适用,但没有表单可供提交。 HTML5通过描述功能澄清了这一点,以便在没有“表单所有者”(包含form元素或form元素与button元素明确关联时明确表示一个HTML5属性),没有任何动作 - 当然,除了编写脚本之外。

实际上,这意味着在form元素之外,button元素在功能上默认为type=button。这意味着如果button默认的type元素更改其上下文(例如,包含在form元素内),则其功能会发生变化。因此,为了清晰和安全,最好明确指定type属性,例如<button type=button><button type=submit>