Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问禁用的按钮_Javascript - Fatal编程技术网

Javascript 如何访问禁用的按钮

Javascript 如何访问禁用的按钮,javascript,Javascript,表单中的html按钮使用动态禁用 document.getElementById('Btn').disabled = true; 稍后,我想知道按钮的状态,如果禁用或启用。使用以下选项不起作用: if (document.getElementById('Btn').disabled == "true") { 解决方案是什么?您可以使用: if (document.getElementById('Btn').disabled) { 浏览器将呈现disabled=“disabled”或只是di

表单中的html按钮使用动态禁用

document.getElementById('Btn').disabled = true;
稍后,我想知道按钮的状态,如果禁用或启用。使用以下选项不起作用:

if (document.getElementById('Btn').disabled == "true") {
解决方案是什么?

您可以使用:

if (document.getElementById('Btn').disabled) {
浏览器将呈现
disabled=“disabled”
或只是
disabled
。这取决于浏览器的实现。因此,仅检查具有禁用属性的
true
字符串将不起作用

前面的代码只会检查它是否有disabled属性,或者说disabled属性在那里可用。

您可以使用:

if (document.getElementById('Btn').disabled) {
浏览器将呈现
disabled=“disabled”
或只是
disabled
。这取决于浏览器的实现。因此,仅检查具有禁用属性的
true
字符串将不起作用


前面的代码只会检查它是否有disabled属性,或者说disabled属性在那里可用。

属性
disabled
包含布尔值而不是字符串,因此它必须是:

if (document.getElementById('Btn').disabled == true) {
或者只是

if (document.getElementById('Btn').disabled) {
:


因此,无论属性或属性设置了什么值,如果访问属性
disabled

属性
disabled
包含布尔值而不是字符串,则始终会得到布尔值,因此它必须:

if (document.getElementById('Btn').disabled == true) {
或者只是

if (document.getElementById('Btn').disabled) {
:


因此,无论属性或属性设置了什么值,如果访问属性
disabled

disabled
属性访问器可能会非常混乱,则始终会得到一个布尔值。有一个属性和一个属性访问器来隐藏该属性

您可以使用
document.getElementById('Btn').hasAttribute('disabled')
检查元素是否已禁用,或者简单地使用
document.getElementById('Btn').disabled
,因为属性getter也返回布尔值:

函数日志属性(btn、attr){
log(`hasaAttribute${btn.hasaAttribute(attr)}`)
log(`getAttribute${btn.getAttribute(attr)}`)
log(`hasOwnProperty${btn.hasOwnProperty(attr)}`)
log(`[attr]${btn[attr]}`)
}
const btn=document.createElement('按钮')
console.log('----未初始化')
日志属性(btn,“已禁用”)
btn.disabled=true
console.log('----set')
日志属性(btn,“已禁用”)
btn.disabled=false
console.log('----unset')
日志属性(btn,“已禁用”)

.as控制台包装{max height:100%!important;}
禁用的
属性访问器可能会非常混乱。有一个属性和一个属性访问器来隐藏该属性

您可以使用
document.getElementById('Btn').hasAttribute('disabled')
检查元素是否已禁用,或者简单地使用
document.getElementById('Btn').disabled
,因为属性getter也返回布尔值:

函数日志属性(btn、attr){
log(`hasaAttribute${btn.hasaAttribute(attr)}`)
log(`getAttribute${btn.getAttribute(attr)}`)
log(`hasOwnProperty${btn.hasOwnProperty(attr)}`)
log(`[attr]${btn[attr]}`)
}
const btn=document.createElement('按钮')
console.log('----未初始化')
日志属性(btn,“已禁用”)
btn.disabled=true
console.log('----set')
日志属性(btn,“已禁用”)
btn.disabled=false
console.log('----unset')
日志属性(btn,“已禁用”)

.as控制台包装{max height:100%!important;}
document.getElementById('Btn').hasAttribute('disabled')
应该足够了。
如果(document.getElementById('Btn').disabled){
as
disabled
已经是布尔值(保持
true
false
).document.getElementById('Btn').hasAttribute('disabled')
应该足够了。
if(document.getElementById('Btn').disabled){
as
disabled
已经是一个布尔值(保持
true
false
)。不要在
true
@pushkin
true==“true”
is
false
not前后加引号true@PatrickRoberts
document.getElementById('Btn').disabled
确实访问项目
document.getElementById('Btn').getAttribute('disabled'))
返回属性,属性是字符串,本例中的属性是布尔值。@pushkin
true==“true”
false
不是true@PatrickRoberts
document.getElementById('Btn').disabled
确实访问项目
document.getElementById('Btn').getAttribute('disabled'))
返回属性,属性是字符串,本例中的属性是布尔值。按照标准操作的浏览器将为
文档返回布尔值。getElementById('Btn')。禁用
。这就是测试
文档.getElementById('Btn')。禁用==“true”
失败的原因,因为它将是
true==“true”
@t.niese是的,这就是它的含义。你应该仔细阅读我的陈述:只是检查true字符串……我的意思是,如果浏览器使用标准的一致方式之一
disabled=“disabled”
disabled=”它是不相关的"
disabled
表示属性的解除锁定状态。重要的是,无论浏览器如何将属性
disabled
表示为属性,属性的类型始终为布尔值。最后一句话验证了这一点。按照标准操作的浏览器将为属性返回布尔值
document.getElementById('Btn')。已禁用。这就是测试
document.getElementById('Btn')。已禁用==“true”
失败的原因,因为它将是
true==“true”
@t.niese是的,这就是它的含义。你应该仔细阅读我的陈述:只是检查真字符串……我的意思是,如果浏览器使用标准的一致方式之一,这是不相关的