Document.getElementById('btnid'). disabled не работает в firefox и chrome
Я использую JavaScript для отключения кнопки. Работает отлично в IE, но не в FireFox и хром, вот script, над чем я работаю:
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" />
Ответы
Ответ 1
используйте setAttribute() и removeAttribute()
function disbtn(e) {
if ( someCondition == true ) {
document.getElementById('btn1').setAttribute("disabled","disabled");
} else {
document.getElementById('btn1').removeAttribute("disabled");
}
}
СМОТРЕТЬ ДЕМО
Ответ 2
Попробуйте напрямую установить атрибут disabled
:
if ( someCondition == true ) {
document.getElementById('btn1').setAttribute('disabled', 'disabled');
} else {
document.getElementById('btn1').removeAttribute('disabled');
}
Ответ 3
Есть всегда странные проблемы с поддержкой браузера 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");
}
}
Ответ 4
Некоторое время некоторые функции javascript не работают в определенном браузере. Я бы предложил вам начать использовать JQuery, который дает вам нормализованное JS, заботясь о разных требованиях к браузеру.
$('#btn1').each(function(){
this.disabled = false;
});
Ответ 5
Другая альтернатива:
document.formname.elementname.disabled=true
Работа над FF и IE!
:)
Ответ 6
остается верным для встроенной (Boolean) поддержки свойств и ее сильного синтаксиса, например:
[elem].disabled = условие? true: false;//done!
и для нашего собственного хорошего коллективного кодирования, - пожалуйста, настаивайте на том, чтобы другие также поддерживали его.
Ответ 7
Я пробовал все возможности. Ничто не работало для меня, кроме следующих.
var element = document.querySelectorAll( "input [id = btn1]" );
Элемент [0].setAttribute( "отключено", правда);