документ.getElementById ('btnid').отключено не работает в firefox и chrome

Я использую 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 ответов


использовать setAttribute () и removeattribute осуществляет()

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

СМ. ДЕМО


попробуйте установить 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;
});

всегда есть странные проблемы с поддержкой браузера 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");
    }    
}

другой вариант :

document.formname.elementname.disabled=true

работа над FF и IE ! :)


оставайтесь верны родной (Boolean) поддержки свойств и его мощный синтаксис, как:

[elem].инвалидность = состояние ? true: false; //готово!

и для нашего собственного хорошего коллективного опыта кодирования, - пожалуйста, настаивайте на других, чтобы поддержать его.


Я пробовал все возможности. У меня ничего не получалось, кроме следующего. элемент var = документ.querySelectorAll ("вход[id=btn1]"); элемент[0].setAttribute ("отключено", true);