web-dev-qa-db-ja.com

document.getElementById( 'btnid')。disabledは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" />
15
steeve

setAttribute() および removeAttribute()

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

デモを見る

44
Ahsan Khurshid

disabled属性を直接設定してみてください:

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

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

一部のjavascript関数は、特定のブラウザーで動作しない場合があります。 JQueryの使用を開始することをお勧めします

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

別の選択肢:

document.formname.elementname.disabled=true

FFおよびIE!:)で作業する

0
HiCode