2009-08-18 6 views
4
私はjavascriptを経由=(言い換えれば、真の)「読み取り専用」読み取り専用に設定しています

IE7ではテキスト入力読み取り専用属性が認識されませんか?

document.getElementById("my_id").setAttribute("readonly", "readonly"); 

これは(もはや編集可能なフィールドを作りますが、その内容はフォームで送信されている)、意図した効果を持っていませんFF、Safari、Chromeではサポートされていますが、IE7ではサポートされていません。 IE7では、まだテキスト入力フィールドの内容を変更できます。

私はテスト中の他の3つのブラウザすべてで動作しますが、IE7も無視する設定( "readonly"、 "true")を試しました。

誰もIE7でこれをやろうとした経験がありますか?私はフォームと一緒に送信されるテキスト入力フィールド内の値を使用したいので、disabled属性を使用したくありません。

答えて

13

これを試しましたか?

document.getElementById("my_id").readOnly = true; 
2

試してみてください。

document.getElementById("my_Id").setAttribute("readOnly","readonly") 

それは読み取り専用で、Oは首都です!

+0

属性はHTMLでは大文字と小文字を区別しませんが、XHTMLではすべて小文字になります。これは通常のInternet ExplorerのsetAttributeバグのようです。安全な解決策は、set属性を避け、アクセサープロパティを使用することです(vitの答えを参照)。 – Quentin

2
<script type="text/javascript"> 

function blah(txt) { 
    var text = document.getElementById(txt).value; 
    if(text.length > 4 && document.getElementById('chk').checked == false) { 

    // ********* NOT WORKING WITH IE *************** // 
    //document.getElementById("ta").setAttribute('readOnly','readonly'); 
    //document.getElementById("ta").readOnly="readOnly"; 
    // ******** --- **********// 

    //document.getElementById("ta").disabled = true; // for disable textArea 
    document.getElementById("ta").blur(); // comment this when above line is uncommented or visa-versa 
    document.getElementById('chkBox').style.display = "block"; 
    } 
} 

function unable() { 
    // document.getElementById("ta").disabled = false; // to unable textArea -- uncomment when disabling is used or visa-versa 
    document.getElementById('ta').focus(); 
    document.getElementById('chkBox').style.display = "none"; 
} 

</script> 


<textarea id="ta" onkeydown="blah('ta')" ></textarea> 
<div id="chkBox" style="display:none"><label> Please check this to continue....</label><input type="checkbox" id="chk" onclick="unable()"></div> 
0

か試してみてください。

document.getElementById("my_id").setAttribute("readOnly", true);

@TheVillageIdiotで述べたように注意してください、読み取り専用でOはUPPER CASEです。これはIE7からIE11まで有効です。

関連する問題