Nella mia form ho diversi campi, tutti readonly e disabled.
Di fianco ad ogni campo c'è un checkbox, selezionandolo si abilita il campo di fianco alla scrittura, deselezionandolo, il campo deve tornare readonly e disabled.
Lo sto facendo così
codice:
<script type="text/javascript">
function toggleVariazione(field)
{
var campo = field.value.toString();
if(document.registralibro.campo.disabled == true)
{
document.registralibro.campo.disabled = false;
document.registralibro.campo.readOnly = false;
}
else
{
document.registralibro.campo.disabled = true;
document.registralibro.campo.readOnly = true;
}
}
</script>
//uno dei campi
<textarea name='biografia' cols='40' rows='5' readonly disabled></textarea>
<input type='checkbox' name='variazioni[]' onclick='toggleVariazione(this)' value='biografia' />
Ciò che dovrebbe accadere è che la funzione prende il value del checkbox, il quale coincide col nome del campo su cui agire, ed usarlo per le istruzioni dentro l'if/else.
La variabile "campo" contiene il nome corretto del campo su cui agire, ma a quanto pare non è utilizzabile per costruire i vari
document.registralibro.campo.disabled
document.registralibro.campo.readOnly
E' davvero impossibile realizzare ciò che sto tentando di fare?
In tal caso, come posso fare in modo che la funzione resti parametrica? Mi scoccia creare una funzione specifica per ogni campo.
Penso che il problema sia quello che ho identificato, perché se ad esempio uso questo codice la funzione fa il suo dovere (ma non è parametrica)
codice:
function toggleVariazione()
{
if(document.registralibro.biografia.disabled == true)
{
document.registralibro.biografia.disabled = false;
document.registralibro.biografia.readOnly = false;
}
else
{
document.registralibro.biografia.disabled = true;
document.registralibro.biografia.readOnly = true;
}
}