2011-10-18 16 views
7

Ho un modulo in cui è necessario disabilitare un array di checkbox e alcuni campi in modo che l'utente non possa modificare/modificare i propri valori. Tuttavia, quando invio il modulo, i valori POST degli elementi disabilitati risultano mancanti/nulli. Come posso gestire ciò che sto cercando di fare senza questo problema?valori POST degli elementi modulo disattivati ​​

In questo momento mi sto disattivando i campi disabilitando il div contenitore come questo:

#unselectable { 
    -moz-user-select: -moz-none; 
    -khtml-user-select: none; 
    -webkit-user-select: none; 
    -o-user-select: none; 
    -webkit-user-select: none; 
    cursor:not-allowed; 

} 
+0

Esci taggando i tuoi titoli per favore. –

risposta

23

Beh, ci sono 3 soluzioni che posso pensare:

  • renderli readonly aggiungendo la proprietà readonly all'elemento.
  • disabilitarli in CSS/JavaScript.Colore come se fosse disabilitato e non consentire la modifica con JavaScript,
  • Lascia disattivato e rimuovi i disabili su Invia.

Fate la vostra scelta :)

+0

Come rimuovere i disabili su Invia? – bikey77

+2

Ho scritto un piccolo script che scorre tra tutti gli elementi del modulo e li abilita quando viene inviato il modulo. Grazie! – bikey77

0

si potrebbe usare "read-only" invece di disabili, che dovrebbe avere l'effetto desiderato

È puoi anche usare javascript per inviare il tuo modulo e pre-inviare senza disabilitare (abilita: P) i vari campi?

6

si potrebbe usare readonly invece di disabled Quale è quasi la stessa per l'utente (non può essere editet), ma vengono presentati i valori della readonly -Elementi mentre i disabled quelli che non lo fanno.

notare che ci sono some other differences tra la sola lettura e wich disabile potrebbe portare ad altri problemi per voi:

L'attributo disabili

  • Valori per disabili elementi del modulo non sono passati al processore metodo. Il W3C chiama questo elemento di successo (funziona in modo simile alle caselle di controllo del modulo non selezionate.)
  • Alcuni browser possono eseguire l'override o fornire uno stile predefinito per gli elementi del modulo disabilitati. (Grigio fuori o rilievo di testo) Internet Explorer 5.5 è particolarmente antipatico per questo.
  • Gli elementi del modulo disabilitati non ricevono lo stato attivo.
  • Gli elementi del modulo disabilitati vengono saltati in navigazione con linguette.

l'attributo Sola lettura

  • Non tutti gli elementi del modulo hanno un attributo di sola lettura. Il più notevole, il,, e gli elementi non hanno attributi di sola lettura (anche se entrambi hanno attributi disabilitati)
  • I browser non forniscono feedback visivi sovrascritti di default che l'elemento del modulo è di sola lettura. (Questo può essere un problema ... vedi sotto.)
  • Gli elementi del modulo con l'insieme di attributi readonly verranno passati al processore del modulo.
  • Leggi solo gli elementi del modulo possono ricevere lo stato attivo
  • Leggi solo gli elementi del modulo sono inclusi nella navigazione a schede.
2

Non c'è molto senso inviare gli stessi dati avanti e indietro.

Basta lasciare sul lato lato server e quindi utilizzarlo su invia.

Inoltre, assumendo che

utente non può cambiare/modificare i loro valori.

è abbastanza sciocco.

+0

È un modulo in cui è necessario avere alcune selezioni predefinite in base al tipo di utente che differiscono da un gruppo all'altro, pertanto i campi devono essere visibili ma non abilitati. – bikey77

+1

Non sto parlando della visibilità sul lato client. Sto parlando del lato server, che ha già questi valori - sdo, non ha assolutamente senso inviandoli di nuovo. E sulla stupida ipotesi che l'utente non possa modificare i valori –

+0

Sono venuto qui cercando una soluzione per inviare dati disabilitati al server, quando in realtà non ho bisogno di farlo affatto, una soluzione molto più semplice. grazie – bumperbox

Problemi correlati