Javascript document.getElementById(';btnid';)。disabled在firefox和chrome中不起作用
我正在使用JavaScript禁用一个按钮。在IE中运行良好,但在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;
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