Pagina 1 di 1

Problema con proprietà "readonly" del tag <inpu

MessaggioInviato: gio ago 24, 2006 9:14 am
da Rumez
IL problema è il seguente:
Ho un elenco di righe, ogni riga ha un campo "Descrizione" formato da una casella di testo.
Di default la casella di testo non è modificabile per cui è stata impostata la proprietà READONLY come segue:
Codice: Seleziona tutto
<input type="text" name="descrizione" id="descrizione" size="50" readonly="readonly" />

...ora è necessario che all'evento DOPPIO CLICK la casella venga resa editabile in modo da poterne modificare il contenuto prima di effettuare il submit.per far ciò bisogna eliminare la proprietà READONLY. Mi sono creato (con l'aiuto di Gooooooogle) una funzione che abilita e disabilita il campo "Descrizione"

In questo modo richiamo la funzione...
Codice: Seleziona tutto
<input type="text" name="descrizione" id="descrizione" size="50" readonly="readonly" ondblclick="javascript:abilitaInput('idCampo')" />

La funzione....
Codice: Seleziona tutto
function abilitaInput(id)
{
   var divObj = null;
   if (document.getElementById)
   {
      divObj = document.getElementById(id);
   }
   else if(document.all)
   {
      divObj = document.all(id);
   }
   else if (document.layers)
   {
      divObj = document.layers[id];
   }
   if(divObj.readOnly == true)
   {
      divObj.readOnly = false;
      divObj.style.color = '#0066FF';
      divObj.focus()
   }
   else
   {
      divObj.readOnly = true;
      divObj.style.color = '#333333';
   }
}

In questo modo sembra funzionare "quasi bene"..nel senso che con Opera e IE lo script viene eseguito correttamente..con FireFox non funziona affatto..
documentandomi un po' ho scoperto che si possono utilizzare i metodi setAttribute('readonly','readonly') e removeAttribute('readonly')..peccato che non funzionino su tutti i browser.
Qualcuno conosce un modo standard o un barbatrucco per ottenere il risultato su tutti i browser?
Accetto anche consigli per la funzione javascrip nel caso non la troviate "giusta al punto giusto"..
ciao..

MessaggioInviato: gio ago 24, 2006 4:22 pm
da Rumez
Rispondete uno alla volta altrimenti non riesco a stare dietro a tutti!!
Scherzi a parte [:-D] ho risolto per conto mio apportando una modifica all'applicazione...
bye...