2011-02-09 10 views
10

Ho una casella di controllo che viene aggiornata da altre selezioni ma è importante mostrare lo stato controllato all'utente. Tuttavia voglio anche che venga letto solo in funzionalità e rappresentato come tale nel display.Disabilitare visivamente una casella di controllo, ma consentirgli di inviare ancora il suo valore

  • Funziona bene da disabilitando l'opzione (dà la casella in grigio per aiutare l'utente visivamente) tuttavia questo significa momento della presentazione il valore non viene salvato.

  • Al contrario, se mi impostato la casella di controllo sola lettura disabilita la casella di controllo ma ancora appare come una casella di controllo normale .

voglio un pò un po 'da ciascuno, una casella di controllo che sottopone il suo valore, ma si presenta come una casella di controllo disabili e ancora mostra il suo status di controllo ... qualcuno ha qualche idea?

+0

Come si fa a essere letto in sola lettura? Poiché l'attributo 'readonly' non vale, o almeno non dovrebbe, si applica alle checkbox (http://www.w3.org/TR/html4/interact/forms.html#edef-INPUT, http: // www .whatwg.org/spec/web-apps/corrente-lavoro/multipagina/numero-state.html # casella di controllo dello stato). – mercator

+0

Credo che questa soluzione aiuta anche qui: https://stackoverflow.com/questions/12769664/how-to-make-html-select-element-look-like-disabled-but-pass-values ​​ –

risposta

10

Utilizzare un campo nascosto <input type="hidden" />. Compila il nascosto con gli stessi valori che ti aspetteresti dalla casella di controllo. In questo modo l'elemento visivo è separato dall'elemento dati e non avrai questi dubbi.

-1

Basta renderlo in sola lettura, assegnargli una classe speciale, quindi nel tuo CSS puoi farlo look come se fosse disabilitato.

+1

* READONLY non lo fa lavora sulle caselle di controllo * ~ http://stackoverflow.com/questions/155291/can-html-checkboxes-be-set-to-readonly –

1

Come semplice alternativa, sarebbe possibile aggiungere un elemento di forma nascosta contenente il valore che si desidera essere conservato? Con questo approccio si ottiene la funzionalità di disabilitare l'elemento, ma il valore viene comunque inviato. Inoltre, non devi preoccuparti di potenziali problemi di compatibilità del browser.

Oltre a questo, su un campo di sola lettura, penso che si avrebbe bisogno di usare i CSS per lo stile la casella di controllo come un campo disabilitato.

1

È possibile impostare i campi di input nascosti quando si impostano i valori casella di controllo, quindi la casella di controllo sarebbe solo ed i valori reali sarebbero presentate attraverso i campi di input nascosti scopo di visualizzazione.

Problemi correlati