23

我正在使用 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" />
4

7 回答 7

60

使用setAttribute()removeAttribute()

function disbtn(e) { 
    if ( someCondition == true ) {
       document.getElementById('btn1').setAttribute("disabled","disabled");
    } else {
       document.getElementById('btn1').removeAttribute("disabled");
    }
}

看演示

于 2012-07-31T10:01:40.620 回答
6

尝试disabled直接设置属性:

if ( someCondition == true ) {
   document.getElementById('btn1').setAttribute('disabled', 'disabled');
} else {
   document.getElementById('btn1').removeAttribute('disabled');
}
于 2012-07-31T10:01:22.413 回答
2

浏览器对 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");
    }    
}
于 2012-07-31T10:01:15.027 回答
0

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

$('#btn1').each(function(){
    this.disabled = false;
});
于 2012-07-31T10:02:14.833 回答
0

另一种选择:

document.formname.elementname.disabled=true

在 FF 和 IE 上工作!:)

于 2016-04-04T09:22:17.573 回答
-1

我已经尝试了所有的可能性。除了以下内容外,没有什么对我有用。var element = document.querySelectorAll("input[id=btn1]"); element[0].setAttribute("禁用",true);

于 2016-11-19T07:43:20.157 回答
-2

忠实于原生(布尔)属性支持及其强大的语法,例如:

[elem].disabled = 条件?真假; //完毕!

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

于 2014-02-16T13:10:25.063 回答