2009-08-18 5 views
4

Je suis en train readonly = « lecture seule » (autrement dit, true) via javascript:L'attribut readonly d'entrée de texte n'est pas reconnu dans IE7?

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

Ceci a l'effet escompté (rendant le champ plus modifiable, mais son contenu sont soumis avec le formulaire) dans FF, Safari et Chrome, mais pas pour IE7. Dans IE7, je peux encore modifier le contenu du champ de saisie de texte.

J'ai aussi essayé de paramétrer ("readonly", "true"), ce qui fonctionne dans les trois autres navigateurs que je suis en train de tester, mais que IE7 ignore également.

Est-ce que quelqu'un a déjà essayé d'utiliser IE7? Je ne veux pas utiliser l'attribut disabled car je veux que la valeur dans le champ de saisie de texte soit soumise avec le formulaire.

Répondre

13

Avez-vous essayé?

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

essayer:

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

est readOnly, O est capitale!

+0

L'attribut est insensible à la casse en HTML et en minuscules en XHTML. Cela ressemble au bogue habituel d'Internet Explorer setAttribute. La solution sûre est d'éviter l'attribut set et d'utiliser la propriété accessor (voir la réponse de vit) à la place. – 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

Ou essayez:

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

S'il vous plaît noter comme indiqué par @TheVillageIdiot, le O readOnly est MAJUSCULES. Cela devrait fonctionner de IE7 à IE11.