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

时间:2012-07-31 09:56:19

标签: javascript getelementbyid

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

7 个答案:

答案 0 :(得分:40)

使用setAttribute()removeAttribute()

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

SEE DEMO

答案 1 :(得分:3)

尝试直接设置disabled属性:

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

答案 2 :(得分:1)

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");
    }    
}

答案 3 :(得分:0)

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

$('#btn1').each(function(){
    this.disabled = false;
});

答案 4 :(得分:0)

另一种选择:

document.formname.elementname.disabled=true

在FF和IE上工作! :)

答案 5 :(得分:-1)

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

[elem] .disabled =条件? true:false; //完成!

并且对于我们自己良好的集体编码经验,请同样坚持其他人也支持它。

答案 6 :(得分:-1)

我已经尝试了所有可能性。除了以下之外,没有什么对我有用。  var element = document.querySelectorAll(“input [id = btn1]”);  元素[0] .setAttribute( “禁用”,TRUE);