Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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 document.getElementById(';btnid';)。disabled在firefox和chrome中不起作用_Javascript_Getelementbyid - Fatal编程技术网

Javascript document.getElementById(';btnid';)。disabled在firefox和chrome中不起作用

Javascript document.getElementById(';btnid';)。disabled在firefox和chrome中不起作用,javascript,getelementbyid,Javascript,Getelementbyid,我正在使用JavaScript禁用一个按钮。在IE中运行良好,但在FireFox和chrome中不起作用,以下是我正在编写的脚本: function disbtn(e) { if ( someCondition == true ) { document.getElementById('btn1').disabled = true; } else { document.getElementById('btn1').disabled = false;

我正在使用JavaScript禁用一个按钮。在IE中运行良好,但在FireFox和chrome中不起作用,以下是我正在编写的脚本:

function disbtn(e) { 
    if ( someCondition == true ) {
       document.getElementById('btn1').disabled = true;
    } else {
       document.getElementById('btn1').disabled = false;
    }
在我的html中,我有:

<input type="button" id="btn1" value="submit" />


浏览器对getElementById的支持总是存在奇怪的问题,请尝试使用以下选项:

// document.getElementsBySelector are part of the prototype.js library available at http://api.prototypejs.org/dom/Element/prototype/getElementsBySelector/

function disbtn(e) { 
    if ( someCondition == true ) {
        document.getElementsBySelector("#btn1")[0].setAttribute("disabled", "disabled");
    } else {
        document.getElementsBySelector("#btn1")[0].removeAttribute("disabled");
    }    
}
或者,使用jQuery,您可以简单地执行以下操作:

function disbtn(e) { 
    if ( someCondition == true ) {
        $("#btn1").attr("disabled", "disabled");
    } else {
        $("#btn1").removeAttr("disabled");
    }    
}

尝试直接设置禁用的
属性:

if ( someCondition == true ) {
   document.getElementById('btn1').setAttribute('disabled', 'disabled');
} else {
   document.getElementById('btn1').removeAttribute('disabled');
}
使用及


有时某些javascript函数在某些特定浏览器上不起作用。我建议您开始使用JQuery,它为您提供了规范化的JS,可以满足不同的浏览器需求

$('#btn1').each(function(){
    this.disabled = false;
});
忠实于本机(布尔)属性支持及其强大语法,如:

[elem].disabled=条件?真:假//完成

为了我们自己良好的集体编码体验,请坚持让其他人也支持它。

另一种选择:

document.formname.elementname.disabled=true
在FF和IE上工作!
:)

我已经尝试了所有的可能性。除了以下几点,我什么都做不到。 var元素=document.querySelectorAll(“输入[id=btn1]”);
元素[0]。setAttribute(“已禁用”,true)

这没什么错。在什么情况下不起作用?按钮禁用和启用在IE中运行良好。但在Firefox和chrome中什么都没有发生。在这两个浏览器中,按钮除了启用之外什么也不做。@Spencer:使用
setAttribute()
removeAttribute()
,如我下面的回答所示。“getElementById的浏览器支持总是有奇怪的问题”-是吗?什么?它是规范中执行最一致的部分之一…与我的浏览器不知道的getElementsBySelector不同,如果jQuery代码真的可以工作,那么我对这个库的厌恶感就会上升。这两个都是属性的无效值,但错误恢复应将禁用的属性设置为“false”,与将其设置为“disabled”相同。@Quentin你完全正确,我的代码不正确(未经事先考虑就说出一个想法的结果)我已经做了更正。@Quentin在进一步阅读之后,getElementsBySelector(不久前向我推荐的东西,但我从未使用过)似乎是prototype.js的一部分!为了“额外”的信息,我将把这篇文章留在这里,但我同意这不是一个理想的答案。@AK:你的小提琴在ff和chrome中运行良好,但在我的页面中,同样的问题是渲染。。。我现在不知所措:(@A K:Huh…它现在工作得很好。我已经重命名了函数名。它正在工作。看起来很有趣…(我以前的函数名是getSelection。我不知道这个名称有什么问题)。非常感谢K…:)旁注:值得一提的是,
disabled
属性实际上是一个布尔值。如果该属性存在,它将禁用该按钮。因此,以下功能也可以正常工作:
document.getElementById('btn1').setAttribute('disabled','true')。。。您可以用任何其他值替换
true
(尽管在某些情况下可能会产生误导)
document.formname.elementname.disabled=true