Javascript 如何访问禁用的按钮
表单中的html按钮使用动态禁用Javascript 如何访问禁用的按钮,javascript,Javascript,表单中的html按钮使用动态禁用 document.getElementById('Btn').disabled = true; 稍后,我想知道按钮的状态,如果禁用或启用。使用以下选项不起作用: if (document.getElementById('Btn').disabled == "true") { 解决方案是什么?您可以使用: if (document.getElementById('Btn').disabled) { 浏览器将呈现disabled=“disabled”或只是di
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){
asdisabled
已经是布尔值(保持true
或false
).document.getElementById('Btn').hasAttribute('disabled')
应该足够了。if(document.getElementById('Btn').disabled){
asdisabled
已经是一个布尔值(保持true
或false
)。不要在true
@pushkintrue==“true”
isfalse
not前后加引号true@PatrickRobertsdocument.getElementById('Btn').disabled
确实访问项目document.getElementById('Btn').getAttribute('disabled'))
返回属性,属性是字符串,本例中的属性是布尔值。@pushkintrue==“true”
是false
不是true@PatrickRobertsdocument.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是的,这就是它的含义。你应该仔细阅读我的陈述:只是检查真字符串……我的意思是,如果浏览器使用标准的一致方式之一,这是不相关的