gpt4 book ai didi

javascript - 为什么将 "disabled"属性设置为 false 也会删除 "disabled"属性?

转载 作者:搜寻专家 更新时间:2023-10-31 22:44:34 26 4
gpt4 key购买 nike

我有一个最初被禁用的按钮:

<button disabled="disabled">Lorem ipsum</button>

对于此按钮,button.getAttribute('disabled') 返回 "disabled"。但是,当我使用 JavaScript 启用此按钮时:

button.disabled = false;

然后 button.getAttribute('disabled') 开始返回 null

现场演示: http://jsfiddle.net/Rhj3c/1/

这是为什么呢? .getAttribute() 不应该从原始 HTML 源代码中返回值吗?然后如何确定按钮是否在原始 HTML 源代码中被禁用?

最佳答案

Shouldn't .getAttribute() return the value from the original HTML source code?

不,根据 the specification (强调我的):

If a reflecting IDL attribute is a boolean attribute, then on getting the IDL attribute must return true if the content attribute is set, and false if it is absent. On setting, the content attribute must be removed if the IDL attribute is set to false, and must be set to the empty string if the IDL attribute is set to true. (This corresponds to the rules for boolean content attributes.)

How do I then determine if the button was disabled in the original HTML source code?

在更改之前检查它。如果问题真的仅限于“原始 HTML 源代码”而不是“元素最初是什么”(例如,如果它是用 JavaScript 创建的),那可能只是:

var originallyDisabled = Array.prototype.slice.call(
document.querySelectorAll('[disabled]')
);

if (originallyDisabled.indexOf(button) !== -1) {

}

关于javascript - 为什么将 "disabled"属性设置为 false 也会删除 "disabled"属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23457331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com