文本框或文本区域的disabled属性的正确值是多少?我以前看到过下面的例子:
disabled
<input type="text" disabled /> <input type="text" disabled="disabled" /> <input type="text" disabled="true" />
dkqlctbz1#
<input type="text" disabled="disabled" />
<input type="text" disabled />
l2osamch2#
HTML5规范:
网址:http://www.w3.org/TR/html5/forms.html#enabling-and-disabling-form-controls:-the-disabled-attributechecked内容属性是一个布尔属性网址:http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes元素上存在布尔属性表示真值,没有属性表示假值。如果存在该属性,则其值必须是空字符串,或者是与该属性的规范名称匹配的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" />
缺少该属性是false的唯一有效语法:
<input type="text" />
建议
如果您关心编写有效的XHTML,请使用disabled="disabled",因为<input disabled>是无效的,其他替代方案可读性较差。否则,只需使用<input disabled>,因为它更短。
disabled="disabled"
<input disabled>
xmjla07d3#
我刚刚尝试了所有这些,对于IE11,似乎唯一有效的是disabled=“true”。禁用的值或未给出值不起作用。事实上,jsp得到了一个错误,所有字段都需要equal,所以我必须指定disabled=“true”才能工作。
rt4zxlrg4#
要设置布尔属性的值,例如disabled,您可以指定任何值。建议使用空字符串或属性名称。重要的是,如果属性存在,* 不管它的实际值 *,它的值都被认为是true。缺少该属性意味着其值为false。通过将disabled属性的值设置为空字符串(""),我们将disabled设置为true,这将导致按钮被禁用。链接到MDN
或者使用setAttribute(“disabled”,“”)将其转换为**""**;
var f = document.querySelectorAll( "label.disabled input" ); for( var i = 0; i < f.length; i++ ) { // Reference var e = f[ i ]; // Actions e.setAttribute( "disabled", false|null|undefined|""|0|"disabled" ); /* <input disabled="false"|"null"|"undefined"|empty|"0"|"disabled"> e.getAttribute( "disabled" ) === "false"|"null"|"undefined"|""|"0"|"disabled" e.disabled === true */ e.removeAttribute( "disabled" ); /* <input> e.getAttribute( "disabled" ) === null e.disabled === false */ e.disabled = false|null|undefined|""|0; /* <input> e.getAttribute( "disabled" ) === null|null|null|null|null e.disabled === false */ e.disabled = true|" "|"disabled"|1; /* <input disabled> e.getAttribute( "disabled" ) === ""|""|""|"" e.disabled === true */ }
sd2nnvve5#
在HTML5中,没有正确的值,所有主要的浏览器都不关心属性是什么,他们只是检查属性是否存在,因此元素被禁用。
5条答案
按热度按时间dkqlctbz1#
<input type="text" disabled="disabled" />
是有效标记。<input type="text" disabled />
是有效的,并由W3C在其示例中使用。l2osamch2#
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
元素上存在布尔属性表示真值,没有属性表示假值。
如果存在该属性,则其值必须是空字符串,或者是与该属性的规范名称匹配的ASCII不区分大小写的值,并且没有前导或尾随空格。
结论:
以下为有效、等价、真:
以下内容无效:
缺少该属性是false的唯一有效语法:
建议
如果您关心编写有效的XHTML,请使用
disabled="disabled"
,因为<input disabled>
是无效的,其他替代方案可读性较差。否则,只需使用<input disabled>
,因为它更短。xmjla07d3#
我刚刚尝试了所有这些,对于IE11,似乎唯一有效的是disabled=“true”。禁用的值或未给出值不起作用。事实上,jsp得到了一个错误,所有字段都需要equal,所以我必须指定disabled=“true”才能工作。
rt4zxlrg4#
MDN上的setAttribute():
要设置布尔属性的值,例如disabled,您可以指定任何值。建议使用空字符串或属性名称。重要的是,如果属性存在,* 不管它的实际值 *,它的值都被认为是true。缺少该属性意味着其值为false。通过将disabled属性的值设置为空字符串(""),我们将disabled设置为true,这将导致按钮被禁用。
链接到MDN
解决方案
或者使用setAttribute(“disabled”,“”)将其转换为**""**;
Chrome测试
sd2nnvve5#
在HTML5中,没有正确的值,所有主要的浏览器都不关心属性是什么,他们只是检查属性是否存在,因此元素被禁用。