Come modificare il font standard dei campi INPUT disabilitati

E' sicuramente una banalità ma può servire a risparmiare tempo...

In IE, contrariamente ad altri browser, non è possibile modificare il font standard dei campi INPUT disabilitati (Enabled="false") e quindi è inutile cercare nella sintassi dei CSS un comando adatto allo scopo. Non è quindi possibile cambiare il colore del testo in un campo disabilitato.

Per ovviare al problema io utilizzo l'evento onFocus ed i css per ottenere un campo che si comporti come se fosse disabilitato ma con la possibilità di personalizzarne l'aspetto. Ecco un esempio:

 <input name="MyTextbox" value="MyValue" type="text" 
          class="locked" onfocus="blur();" />

dove ad esempio la classe "locked" è così definita:

 .locked
{
    cursor:default;
    color:Navy;
    background-color: #ccffff;
}

In particolare:

  • imposto onfocus="blur();" per ottenere che il controllo non mantenga mai il focus; quindi sarà impossibile modificarne il contenuto
  • poi, con cursor:default nel css, imposto il tipo di cursore (per evitare che appaia la classica I di modifica e che l'utente consideri il campo come editabile)

A questo punto avrà effetto anche il colore del font nel foglio di stile (color:Navy;) come desiderato.

HTH