更正已禁用属性的值

textbox或textarea的disabled属性的正确值是多less?

我见过以下用过的:

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

HTML5规范

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

检查的内容属性是布尔属性

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

元素上布尔属性的存在表示真值,缺less属性表示假值。

如果该属性存在,则其值必须是空string,或者是该属性规范名称的ASCII不区分大小写的匹配值,且不包含前导或尾随空格。

结论

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

 <input type="text" disabled /> <input type="text" disabled="" /> <input type="text" disabled="disabled" /> <input type="text" disabled="DiSaBlEd" /> 

以下是无效的

 <input type="text" disabled="0" /> <input type="text" disabled="1" /> <input type="text" disabled="false" /> <input type="text" disabled="true" /> 

缺less该属性是错误的唯一有效语法:

 <input type="text" /> 

build议

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

我只是尝试了所有这些,对于IE11,似乎工作的唯一东西是禁用=“真”。 残疾或没有价值的价值没有工作。 事实上,jsp得到了一个所有字段都需要相同的错误,所以我必须指定disabled =“true”才能工作。

在HTML5中,没有正确的值,所有的主stream浏览器并不关心属性是什么,他们只是检查属性是否存在,所以元素被禁用。