为什么对于html工作,Disabled = true?

时间:2009-10-13 06:29:35

标签: html internet-explorer boolean

我在代码中注意到disabled = ture' i是锚标记的源代码。我想知道为什么它在IE中有效。我还搜索了互联网,并通过网络搜索在很多源代码中使用它。我一直在寻找是否真的,IE也可以使用错误的拼写错误。

有人对此有任何想法吗?

6 个答案:

答案 0 :(得分:12)

以前是禁用元素,你刚刚<input type="text" disabled>,所以大多数浏览器并不关心该属性的内容。我相信让disabled="disabled"成为一个标准,以便代码是有效的XML。

答案 1 :(得分:5)

IE仅检查是否存在已禁用的属性。它的价值无关紧要。

答案 2 :(得分:1)

如果您正在使用类似&#34; dojo&#34;的框架为了呈现GUI小部件,此HMTL标记的值可以影响组件的呈现方式(对于较旧的IE浏览器而言是不同的)。 Dojo关注表示disabled属性的DOM对象的值。例如,此标记将呈现启用的小部件,前提是您正在使用Chrome或&gt; = IE9:

disabled="false"

这与vanilla HTML组件的行为相反,纯粹因为禁用属性存在而被禁用(根据Zed的帖子)。

在Chrome和IE9 /更高版本中,禁用的属性值被准确地保存到表示它的DOM对象中(例如,如果标记中不存在该属性,则甚至不在DOM对象上定义该属性)。由于DOM对象在呈现其小部件时驱动dojo,因此HTML标记中的值将产生影响。

在IE8 /更早版本中,属性值以不同方式持久存储到DOM中。首先,disabled属性始终存在,其次只有它的缺失才能确保值为false(在这种情况下,dojo小部件将显示为启用状态)。

注意:现代IE浏览器可以被忽略以将其行为回归到旧版本(例如带有X-UA-Compatible的元标记content="IE=8"

示例1 vanilla html标记

根据Zed的帖子,只应启用其中的第一个(在任何浏览器中):

<button>OK</button>
<button disabled>OK</button>
<button disabled="false">OK</button>
<button disabled="true">OK</button>
<button disabled="mickey">OK</button>
<button disabled="">OK</button>

示例2 dojo html标记

第一个和第三个是使用dojo启用的(在Chrome / IE9或更高版本中):

<button dojoType="dijit.form.Button">OK</button>
<button dojoType="dijit.form.Button" disabled>OK</button>
<button dojoType="dijit.form.Button" disabled="false">OK</button>
<button dojoType="dijit.form.Button" disabled="true">OK</button>
<button dojoType="dijit.form.Button" disabled="mickey">OK</button>
<button dojoType="dijit.form.Button" disabled="">OK</button>

在IE8或以下版本中,渲染与第一个示例完全相同。

奇怪的是&#34;&#34;在JavaScript中评估为false值,但在上述示例的上下文中没有转换为false值(因此启用了小部件)。

答案 3 :(得分:0)

disable属性可以采用一个值:'disabled'

HTML中此属性的所有实例都允许省略引号,分隔符和名称(只留下未加引号的值)。

由于浏览器实现标记汤解析器并执行大量错误恢复,因此禁用=几乎所有内容都将被视为disabled

(我猜微软已经出于某种原因在锚上实现了禁用,尽管该元素不存在属性)。

答案 4 :(得分:-1)

IE因允许错误填充的HTML代码工作而臭名昭着;这就是为什么许多人错误地“责备”它的问题,但实际上只是他们做错了。

我认为IE允许将diabled设置为任何(除了false之外)以表示它是真的,因为我认为过去人们已经写过disabled='disabled'和其他类似的东西。

答案 5 :(得分:-1)

如果要根据用户级别禁用此代码,可以使用此代码 将它插入输入表单标签希望帮助

<?php 
if($_SESSION['user_level']=="level1")
{
?>  

disabled="disabled"  

<?php 
}
?>