2010-10-28 10 views
74

Voglio disabilitare un campo di input, ma quando invio il modulo dovrebbe comunque passare il valore.Invio del valore di un campo di input disabilitato

Caso di utilizzo: sto cercando di ottenere latitudine e longitudine da Google Maps e voglio visualizzarlo, ma non voglio che l'utente lo modifichi.

È possibile?

+1

possibile duplicato di [Input modulo disattivato non vengono visualizzati nella richiesta] (http://stackoverflow.com/questions/7357256/disabled-form-inputs-do-not-appear-in-request) –

risposta

159

Voglio disattivare un campo di input in un form e quando ho inviare il modulo i valori dalla modulo disabile non è hanno presentato .

caso d'uso: sto cercando di ottenere Lat Lng da Google Map e voglio visualizzarlo .. ma non voglio che l'utente di modificarla.

È possibile utilizzare la proprietà readonly nel vostro campo di input

<input type="text" readonly="readonly" /> 
+0

Questo non disabiliterà il campo come vuole (il valore sarà comunque passato) –

+9

@Pekka: Che io * pensi * quello che vuole. Quando lo rende disabilitato, i valori non passano ma con readonly, può impedirne la modifica e il valore verrà comunque passato. – Sarfraz

+0

@Sarfraz ah, abbastanza giusto. Potrebbe essere in entrambi i modi, vero. –

4

Gli elementi di input hanno una proprietà denominata disabled. Quando il form sostiene, basta eseguire del codice in questo modo:

var myInput = document.getElementById('myInput'); 
myInput.disabled = true; 
+0

Semplice e intelligente! Grazie ! –

+0

MacGyver sarebbe orgoglioso –

+0

Affrontare la domanda originale, al fine di passare il valore durante la presentazione del modulo, la proprietà "disabled" dovrebbe essere "false" invece di "true". –

10

è anche possibile utilizzare l'attributo Sola lettura: l'ingresso non è intenzione di essere in grigio, ma non sarà modificabile

<input type="text" name="lat" value="22.2222" readonly="readonly" /> 
+0

grazie: D per la spiegazione –

15

So che questo è vecchio ma mi sono imbattuto in questo problema e nessuna delle risposte è adatta. la soluzione di nickf funziona ma richiede javascript. Il modo migliore è disabilitare il campo e passare ancora il valore è utilizzare un campo di input nascosto per passare il valore al modulo. Ad esempio,

<input type="text" value="22.2222" disabled="disabled" /> 
<input type="hidden" name="lat" value="22.2222" /> 

In questo modo il valore viene passato ma l'utente vede il campo in grigio. L'attributo readonly non lo ignora.

+1

Puoi aggiungere CSS nelle caselle di testo disattivate per renderle grigie su. – krillgar

Problemi correlati