mercoledì 21 novembre 2012

Javascript inibire scrittura in text area al combo change

Questa operazione apparentemente banale nasconde una piccola insidia con Internet
Explorer.
La scelta migliore rimane quella di utilizzare un framework Javascript come Jquery ma se tale scelta non fosse possibile....
Con Firefox e Chrome si può usare il costrutto:

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



Con Internet Explorer tale istruzione non funziona, e bisogna utilizzare

document.getElementById("idCampo").readOnly=true;

Di seguito il codice di un esempio, abbiamo una combo al cui evento onchange per un particolare codice si inibisce la scrittura nella textbox sottostante.


<html>

<head>

<script>
function disabilitaAbilita(){
if(document.getElementById("test").value=="1")
{
document.getElementById("firstName").value="Scrittura inibita!!!!";
//document.getElementById("firstName").setAttribute("readonly","readonly");
document.getElementById("firstName").readOnly=true;
}
else
{
document.getElementById("firstName").value="";
//document.getElementById("firstName").removeAttribute("readonly");
document.getElementById("firstName").readOnly=false;
}
}
</script>
</head>
<body onload="disabilitaAbilita()">

<form > Scelta

<SELECT name="example" id="test" onchange="disabilitaAbilita()">

<OPTION selected value="1">UNO </OPTION>

<OPTION  value="2">DUE</OPTION>

<OPTION value="3">TRE</OPTION>

<OPTION value="4">QUATTRO</OPTION>

</SELECT>

<br>

Testo<textarea type="text" name="firstname" id="firstName">

</form>

</body>

</html>
Ecco l'esempio renderizzato:
Scelta

Testo

Nessun commento:

Posta un commento