我必须在我的Javas Script代码中禁用一些元素,哪一个更适合通过Java Script禁用元素:
1. document.getElementById("eleId").disabled = true;
2. document.getElementById("eleId").disabled = "disabled";
请有人描述这些功能,这些功能之间有什么区别?
答案 0 :(得分:4)
两种情况都有效。
在第1种情况下,您将属性“disabled”设置为布尔值“true”。 在案例2中,您将属性“已禁用”设置为字符串值“已禁用”。
如果您要通过HTML设置此值,通常只需在列出的标记上显示“禁用”裸属性即可。但是对于XHTML / XML样式合规性,您可以使用格式正确的属性disabled =“disabled”。
基本上,如果浏览器检测到属性'disabled'存在,(我认为)它将禁用该元素。
修改强> 另一个SO用户(RobG)指出,这会设置所讨论元素的'DOM属性'而不是'属性'。
当处理'getElementById'的结果时,您正在处理文档结构的表示。进行修改时,您是“对象模型”的设置属性。在Java中编程了这么久,我通常会将术语“属性”与“属性。在说“它设置属性”的情况下,我是不正确的。说我要设置'属性'意味着我会修改文档(HTML)以更改实际源中“禁用”的值。实际上这是修改对象树设置代表对象的属性。
答案 1 :(得分:2)
在XHTML中,禁止属性最小化,并且必须将disabled属性定义为禁用=“禁用”
在普通HTML中,我们可以使用 disabled = true
答案 2 :(得分:2)
从技术上讲,如果属性只是一个禁用属性,它应该禁用它。虽然对于XHTML,它必须被禁用=“禁用”
答案 3 :(得分:2)
HTML disabled attribtue是布尔值,它的存在将相关的DOM属性设置为true
,并用HTML 4.01和HTML5编写:
<... disabled ...>
在XML中,属性必须具有值,因此对于XHTML,它的编写:
<... disabled="disabled" ...>
然而实际值是无关紧要的,它仍然作为布尔属性。
在DOM中,元素属性通常反映相关的属性值,但并非总是如此。 setAttribute
和getAttribute
的工作方式也存在不一致之处,因此在javascript中最好使用DOM属性,除非有充分的理由使用属性(例如数据属性)。
要禁用元素,disabled
DOM属性应设置为布尔true
,要“取消禁用”元素,属性应设置为false
。将任何字符串分配给该值将使其通过类型转换设置为true
。
答案 4 :(得分:1)
人们往往会对xhtml属性值感到困惑:
<input id="test" disabled="disabled"/>
和javascript DOM api:
inputElement.disabled = true;
并将javascript值设置为字符串。这在技术上并不正确,但工作正常。