【问题标题】:Does a <button> TYPE have to be defined?是否必须定义 <button> 类型?
【发布时间】:2013-03-04 04:24:46
【问题描述】:

在使用按钮标签的时候,type属性是必须要定义的,还是语义上才有?

<button>Click Me</button>

【问题讨论】:

    标签: html button semantics


    【解决方案1】:

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

    如果元素出现在任何form 元素之外,上述方法仍然适用,但没有要提交的表单。 HTML5 通过描述功能来澄清这一点,以便清楚地表明,如果没有“表单所有者”(封闭的 form 元素或与具有 HTML5 属性的 button 元素显式关联的 form 元素),则没有动作——当然,除非是用脚本编写的。

    实际上,这意味着在form 元素之外,button 元素在功能上默认为type=button。这意味着,如果具有 type 的默认 button 元素更改其上下文(例如,被包装在 form 元素中),则其功能会更改。因此,为了清楚和安全起见,最好明确指定 type 属性,例如&lt;button type=button&gt;&lt;button type=submit&gt;

    【讨论】:

      【解决方案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 --
      

      【讨论】:

      • 在按钮标签上设置链接最符合语义的方式是什么?
      • @rick — &lt;a class="looks-like-a-button" href="foo"&gt;Text Content&lt;/a&gt;(您列出的选项分别是无效、无效和不必要地依赖于 JavaScript)。
      猜你喜欢
      • 2018-11-18
      • 2018-06-30
      • 1970-01-01
      • 2016-06-29
      • 2017-12-12
      • 2017-09-20
      • 1970-01-01
      • 2018-12-18
      • 1970-01-01
      相关资源
      最近更新 更多