disabled属性的正确值是什么?

tsk*_*zzy 156 html textbox textarea

disabled文本框或文本区域的属性的正确值是什么?

我见过以下用过:

<input type="text" disabled />
<input type="text" disabled="disabled" />
<input type="text" disabled="true" />
Run Code Online (Sandbox Code Playgroud)

Eri*_*lli 146

  • 对于XHTML,<input type="text" disabled="disabled" />是有效的标记.
  • 对于HTML5,<input type="text" disabled />W3C对其样本有效并使用.
  • 实际上,两种方式都适用于所有主流浏览器.

  • 在html5中,input是一个void元素,不需要自动关闭斜杠:https://www.w3.org/TR/html5/syntax.html#void-elements和https://www.w3.org/ TR/HTML5/syntax.html#语法的开始标记 (13认同)

Cir*_*四事件 100

HTML5规范:

http://www.w3.org/TR/html5/forms.html#enabling-and-disabling-form-controls:-the-disabled-attribute:

checked内容属性是布尔属性

http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes:

元素上存在布尔属性表示真值,缺少属性表示false值.

如果该属性存在,则其值必须是空字符串,或者是属性的规范名称的ASCII不区分大小写匹配的值,没有前导或尾随空格.

结论:

以下是有效,等效和真实的:

<input type="text" disabled />
<input type="text" disabled="" />
<input type="text" disabled="disabled" />
<input type="text" disabled="DiSaBlEd" />
Run Code Online (Sandbox Code Playgroud)

以下是无效的:

<input type="text" disabled="0" />
<input type="text" disabled="1" />
<input type="text" disabled="false" />
<input type="text" disabled="true" />
Run Code Online (Sandbox Code Playgroud)

缺少该属性是false的唯一有效语法:

<input type="text" />
Run Code Online (Sandbox Code Playgroud)

建议

如果您关心编写有效的XHTML,请使用disabled="disabled",因为它<input disabled>是无效的,而其他替代方案的可读性较差.否则,只需使用<input disabled>它,因为它更短.

  • 注意:如果使用AngularJS,并且需要将禁用状态绑定到变量,则可以使用[`ng-disabled`](https://docs.angularjs.org/api/ng/directive/ngDisabled).与此类其他属性类似,通常它们具有智能的"ng-*"对应物 (3认同)
  • `disabled = {true}`适用于reactJs JSX代码,但我确信它只会转换为有效/允许的HTML5格式之一. (3认同)