- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我总是觉得 disabled
HTML 的属性 <input>
一切都在扭曲我的大脑。为什么选择一个否定的属性名称,不是 enabled
更直观?
比较一下:
enabled=advancedUser
disabled=not(advancedUser)
enabled=not(locked)
disabled=locked
enabled=advancedUser and not(locked)
disabled=not(advancedUser) or locked
disabled=not(advancedUser and not(locked))
最佳答案
这背后的根本原因是它是后来添加到 HTML 输入字段中的,并且需要以这种方式保持与现有网页的向后兼容性。
当 <input>
标签最初被定义,它的功能是极其有限的。它没有 disabled
或 readonly
属性,也不是我们今天认为理所当然的许多其他属性。
这些都是后来加的,但是加的时候很多网站已经在用<input>
了字段,因此禁用它的能力必须在不影响未使用它的现有代码的情况下起作用。因此默认状态必须是 enabled
.
它也必须是一个 bool 标志,这就是为什么它是 disabled
而不是 enabled=true
.后者本来是一个键值对属性。这不是一个好的选择。
考虑以下几点:
enabled=false
enabled=0
enabled=FALSE
enabled=no
enabled=disabled
enabled=flase
etc...
浏览器必须能够处理大量可能的值。使它成为一个 bool 标志可以极大地简化事情。它使网站开发人员和浏览器开发人员更容易理解规范。
另一件要记住的事情是,将此属性添加到 HTML 的时间正处于所谓的“浏览器大战”之中。许多功能被添加到竞争的网络浏览器中,匆忙且没有正式规范的好处,并且添加了许多我们确实可以回顾并希望它们略有不同的功能。
我认为这不是这些功能之一:disabled
如果你停下来想一想,旗帜是完全合乎逻辑的。但是,如果当时浏览器开发人员合作得更多一点,它的设计很有可能会更好。
但无论如何,今天的情况就是我们所拥有的。 HTML 规范可能会不断发展,但诸如此类的现有功能现在不会改变。
关于html - 为什么属性 "disabled"而不是 "enabled",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7708184/
你能比较一下属性吗 我想禁用文本框“txtName”。有两种方式 使用javascript,txtName.disabled = true 使用 ASP.NET, 哪种方法更好,为什么? 最佳答案 我
Count 属性 返回一个集合或 Dictionary 对象包含的项目数。只读。 object.Count object 可以是“应用于”列表中列出的任何集合或对
CompareMode 属性 设置并返回在 Dictionary 对象中比较字符串关键字的比较模式。 object.CompareMode[ = compare] 参数
Column 属性 只读属性,返回 TextStream 文件中当前字符位置的列号。 object.Column object 通常是 TextStream 对象的名称。
AvailableSpace 属性 返回指定的驱动器或网络共享对于用户的可用空间大小。 object.AvailableSpace object 应为 Drive 
Attributes 属性 设置或返回文件或文件夹的属性。可读写或只读(与属性有关)。 object.Attributes [= newattributes] 参数 object
AtEndOfStream 属性 如果文件指针位于 TextStream 文件末,则返回 True;否则如果不为只读则返回 False。 object.A
AtEndOfLine 属性 TextStream 文件中,如果文件指针指向行末标记,就返回 True;否则如果不是只读则返回 False。 object.AtEn
RootFolder 属性 返回一个 Folder 对象,表示指定驱动器的根文件夹。只读。 object.RootFolder object 应为 Dr
Path 属性 返回指定文件、文件夹或驱动器的路径。 object.Path object 应为 File、Folder 或 Drive 对象的名称。 说明 对于驱动器,路径不包含根目录。
ParentFolder 属性 返回指定文件或文件夹的父文件夹。只读。 object.ParentFolder object 应为 File 或 Folder 对象的名称。 说明 以下代码
Name 属性 设置或返回指定的文件或文件夹的名称。可读写。 object.Name [= newname] 参数 object 必选项。应为 File 或&
Line 属性 只读属性,返回 TextStream 文件中的当前行号。 object.Line object 通常是 TextStream 对象的名称。 说明 文件刚
Key 属性 在 Dictionary 对象中设置 key。 object.Key(key) = newkey 参数 object 必选项。通常是 Dictionary 
Item 属性 设置或返回 Dictionary 对象中指定的 key 对应的 item,或返回集合中基于指定的 key 的&
IsRootFolder 属性 如果指定的文件夹是根文件夹,返回 True;否则返回 False。 object.IsRootFolder object 应为&n
IsReady 属性 如果指定的驱动器就绪,返回 True;否则返回 False。 object.IsReady object 应为 Drive&nbs
FreeSpace 属性 返回指定的驱动器或网络共享对于用户的可用空间大小。只读。 object.FreeSpace object 应为 Drive 对象的名称。
FileSystem 属性 返回指定的驱动器使用的文件系统的类型。 object.FileSystem object 应为 Drive 对象的名称。 说明 可
Files 属性 返回由指定文件夹中所有 File 对象(包括隐藏文件和系统文件)组成的 Files 集合。 object.Files object&n
我是一名优秀的程序员,十分优秀!