2009-10-13 50 views
4

我注意到我们的代码中有一个disabled = ture'我是锚标签的源代码。我想知道为什么它在IE中起作用。我也搜索了互联网,并且它也通过网络中的搜索在很多源代码中使用。我一直在搜索,如果真的,拼写错误也可以被IE使用。为什么Disabled = ture for html work?

有没有人对此有任何意见?

+4

笑。好吧,他们允许各种格式不正确的HTML和不匹配的标签...为什么不允许语法错误呢? :p 我在猜测什么,但“假”评估为真......或类似的东西。 – mpen 2009-10-13 06:31:55

+1

罗,<输入禁用= “假”>也被禁止:-P – Nickolay 2009-10-13 07:19:10

+2

KLE。我注意到你改变了真实的拼写。实际上,在我们的代码中确实是{disabled = ture'}。即使错误的拼写被接受,它甚至不是真的。我猜浏览器会接受任何价值。 :) – Nap 2009-10-15 03:59:56

回答

12

它曾经是为了禁用一个元素,你只是做了<input type="text" disabled>,所以大多数浏览器并不在乎该属性的含义。我相信使它成为一个标准,所以代码将是有效的XML。

+1

增加:HTML5现在编纂了<输入禁用>语法和甚至使得它在示例:http://www.whatwg.org/specs/web-apps/current-work/ – Nickolay 2009-10-13 07:18:07

+0

HTML 4有这样的:HTTP:/ /www.w3.org/TR/html4/interact/forms.html#adef-disabled(HTML 3.2根本没有禁用属性,但checked属性的工作方式如下:http://www.w3.org/TR/REC-html32#输入) – Quentin 2009-10-13 09:23:34

+2

这称为属性最小化,可以追溯到最初构建HTML时所使用的SGML标准。 – bobince 2009-10-13 12:01:05

5

IE只检查是否存在禁用属性。它的价值并不重要。

-1

IE是臭名昭着的允许错误填充的HTML代码工作;这就是为什么许多人错误地将它归咎于问题,但实际上只是他们做错了事情。

我相信IE允许diabled被设置为任何东西(不是假的)来表示它是真的,因为我认为在过去人们已经写了disabled='disabled'以及其他类似的东西。

0

disable属性可以取一个值:“禁用”

在HTML该属性的所有实例允许将被省略的报价,分离器和名称(只留下引号值)。

由于浏览器实现标签汤解析器并执行大量错误恢复,因此disabled =几乎任何东西都将被视为disabled。 (并且我猜微软已经在某些原因的锚上实现了禁用,尽管这个元素不存在该属性)。

-1

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

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

disabled="disabled" 

<?php 
} 
?> 
1

如果你使用像“道场”的框架呈现您的GUI小部件此HMTL标记的值可能会影响组件的呈现方式(并且对于较旧的IE浏览器而言也不同)。 Dojo注意表示禁用属性的DOM对象的值。例如该标记将呈现一个使能窗口小部件提供使用的是铬或> = IE9:

disabled="false" 

这是香草HTML组件的行为方式,这将由于禁用属性存在纯粹禁用相反(如每Zed的帖子)。

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

在IE8 /早期,属性的值以不同方式持久保存到DOM中。首先,被禁用的属性总是存在,其次只有它的缺席才能确保该值为假(在这种情况下,dojo小部件将显示为启用)。

注意:现代IE浏览器可以将它们的行为退化为旧版本(例如带有content="IE=8"的元标记X-UA-Compatible)。

实施例1种香草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道场HTML标记

第一和第三的这些与道场(在铬/ 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或低于上述会使完全一样的第一个例子。

奇怪“”评估为假值在JavaScript,但不翻译成在上述实施例(并因此启用插件)的上下文中,假值。

相关问题