readonly =“ true”和readonly =“ readonly”有什么区别?

问题描述

| 之间有什么区别?
<input name=\"TextBox1\" type=\"text\" id=\"TextBox1\" readonly=\"true\" />
和:
<input name=\"TextBox1\" type=\"text\" id=\"TextBox1\" readonly=\"readonly\" />
当我将
readonly
设置为
true
时,它的工作原理与works4ѭ有所不同。 W3C标准规定,“ 2”应为“ 6”,而不是“ 7”。为什么大多数浏览器都允许使用功能与ѭ4有所不同的
readonly=\'true\'
?     

解决方法

        给元素赋予属性“ 2”将使该元素具有只读状态。紧随其后的是什么值,或者紧随其后的是什么,它仍然将其视为只读。放
readonly=\"false\"
不起作用。 建议使用W3C标准,即
readonly=\"readonly\"
。     ,        这是属性设置,而不是有价值的属性 这些属性设置是每次查看的值,不需要对其进行任何分配。存在它们时,元素的布尔属性设置为
true
,不存在时为
false
<input type=\"text\" readonly />
实际上,这些浏览器在向其分配价值方面比较宽松。如果为它们分配任何值,它将被忽略。浏览器将仅看到特定属性的存在,而忽略您尝试分配给它们的值。 这当然很好,因为某些框架无法在不提供其值的情况下添加此类属性。 Asp.net MVC HTML帮助器就是其中之一。 jQuery在1.6版之前一直是相同的,他们添加了属性的概念。 当然,还有一些与XHTML相关的含义,因为XML中的属性需要值才能形成正确的格式。但这是一个不同的故事。因此,浏览器必须忽略值分配。 无论如何。只要名称拼写正确就可以为您分配给他们的值,这样浏览器就可以检测到它。但是出于可读性和可维护性,最好为它们分配有意义的值,例如:
readonly=\"true\" <-- arguably best human readable
readonly=\"readonly\"
相对于
readonly=\"johndoe\"
readonly=\"01/01/2000\"
这可能会使将来的开发人员混淆您的代码,并可能干扰将来的规范,而后者可能会对此类属性设置定义更严格的规则。     ,        
readonly=\"true\"
无效的HTML5,
readonly=\"readonly\"
有效。 HTML5规范: http://www.w3.org/TR/html5/forms.html#attr-input-readonly:   readonly属性是一个布尔属性 http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes:   元素上的布尔属性的存在表示真实值,而该属性的缺失表示错误值。      如果存在该属性,则它的值必须是空字符串,或者是该属性的规范名称的ASCII大小写不敏感匹配的值,并且没有前导或尾随空格。 结论: 以下是有效,等效和正确的内容:
<input type=\"text\" readonly />
<input type=\"text\" readonly=\"\" />
<input type=\"text\" readonly=\"readonly\" />
<input type=\"text\" readonly=\"ReAdOnLy\" />
以下是无效的:
<input type=\"text\" readonly=\"0\" />
<input type=\"text\" readonly=\"1\" />
<input type=\"text\" readonly=\"false\" />
<input type=\"text\" readonly=\"true\" />
该属性的缺失是false的唯一有效语法:
<input type=\"text\"/>
建议 如果您关心编写有效的XHTML,请使用
readonly=\"readonly\"
,因为
<input readonly>
无效,并且其他替代方法不太可读。否则,请使用
<input readonly>
,因为它更短。     ,        
readonly=\"readonly\"
是xhtml语法。在xhtml中,布尔属性是用这种方式编写的。在xhtml中,不允许使用'attribute minimization \'(
<input type=\"checkbox\" checked>
),因此这是在xhtml中包含布尔属性的有效方法。有关更多信息,请参见此页面。 如果您的文档类型是xhtml过渡文档或严格文档,并且您想对其进行验证,请使用
readonly=\"readonly
,否则使用
readonly
就足够了。     ,        我不确定它们在功能上有何不同。我当前的OS X浏览器批次没有任何区别。 由于传统的HTML属性处理,我认为它们在功能上都是相同的。回想一下,任何标记(布尔)属性仅需存在,但不带值,例如
<input readonly>
<option selected>
XHTML出现时,此语法无效,并且需要使用值。虽然W3使用属性名称作为值来指定,但我猜想大多数浏览器供应商都决定只检查属性是否存在。     ,        根据HTML标准,使用
<input name=\"TextBox1\" type=\"text\" id=\"TextBox1\" readonly/>
足以使输入元素变为只读。但是,XHTML标准指出由于
attribute minimization
,上面列出的用法无效。您可以参考以下链接: https://www.w3.org/TR/xhtml1/diffs.html#h-4.5 http://www.w3schools.com/tags/att_input_readonly.asp