2009-08-18 9 views
4

I Read-only = „Nur-Lesen“ setze (in anderen Worten, true) über javascript:Texteingabe-Readonly-Attribut im IE7 nicht erkannt?

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

Dies hat den beabsichtigten Effekt (was das Feld nicht mehr bearbeitet werden, aber sein Inhalt mit der Form vorgelegt) in FF, Safari und Chrome, aber nicht für IE7. In IE7 kann ich noch den Inhalt des Texteingabefelds ändern.

Ich habe versucht Einstellung ("readonly", "true") auch, das funktioniert in allen drei anderen Browsern, die ich teste, aber IE7 ignoriert auch.

Hat jemand Erfahrung mit dem Versuch, dies mit IE7 zu tun? Ich möchte das deaktivierte Attribut nicht verwenden, da der Wert innerhalb des Texteingabefelds mit dem Formular übermittelt werden soll.

Antwort

13

Haben Sie das versucht?

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

Versuch:

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

es ist readonly, O Hauptstadt ist!

+0

Das Attribut berücksichtigt Groß- und Kleinschreibung in HTML und alle Kleinbuchstaben in XHTML. Dies sieht wie der normale setAttribute-Bug von Internet Explorer aus. Die sichere Lösung besteht darin, das set-Attribut zu vermeiden und stattdessen die Accessor-Eigenschaft zu verwenden (siehe die Antwort von 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

Oder versuchen:

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

Bitte beachten Sie, wie @TheVillageIdiot angegeben, die O in schreibgeschützt ist VERSALIEN. Dies sollte von IE7 zu IE11 funktionieren.