2010-10-28 23 views
74

Ich möchte ein Eingabefeld deaktivieren, aber wenn ich das Formular abschicke, sollte es den Wert noch übergeben.Senden des Werts eines deaktivierten Eingabefeldes

Anwendungsfall: Ich versuche, Breite und Länge von Google Maps zu erhalten und anzuzeigen, aber ich möchte nicht, dass der Benutzer es bearbeiten.

Ist das möglich?

+1

mögliche Duplikate von [Deaktivierte Formulareingaben erscheinen nicht in der Anfrage] (http://stackoverflow.com/questions/7357256/disabled-form-inputs-do-not-appear-in-request) –

Antwort

159

möchte ich ein Eingabefeld auf einer Form deaktivieren und wenn ich das Formular abzuschicken ist die Werte aus der deaktiviert Form nicht eingereicht .

Use Case: Ich versuche, Lat Lng von Google Map zu bekommen und wollen es anzeigen .. aber nicht den Benutzer möchte es bearbeiten.

Sie können das readonly Eigenschaft in Ihrem Eingabefeld

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

Dies wird das Feld nicht wie er will deaktivieren (der Wert wird noch übergeben) –

+9

@Pekka: Das ich * denke * was er will. Wenn er deaktiviert wird, werden die Werte nicht übergeben, aber mit Readonly kann er die Bearbeitung verhindern und der Wert wird weiterhin übergeben. – Sarfraz

+0

@Sarfraz ah, fair genug. Es könnte beides sein, wahr. –

4

Eingabeelemente haben eine Eigenschaft namens disabled. Wenn das Formular abschickt, nur einige Code wie folgt ausführen:

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

Einfach und intelligent! Vielen Dank ! –

+0

MacGyver wäre stolz –

+0

Adressierung der ursprünglichen Frage, um den Wert während der Formularübergabe übergeben "Behinderte" Eigenschaft sollte "falsch" statt "wahr" sein. –

10

Sie auch die Read-only-Attribut verwenden können: die Eingabe nicht Gonna abgeblendet werden, aber es wird nicht bearbeitet werden

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

danke: D für die Erklärung –

15

Ich weiß, dass das alt ist, aber ich bin gerade auf dieses Problem gestoßen und keine der Antworten ist geeignet. Die Lösung von nickf funktioniert, benötigt aber JavaScript. Der beste Weg besteht darin, das Feld zu deaktivieren und den Wert dennoch zu übergeben, um ein verborgenes Eingabefeld zu verwenden, um den Wert an das Formular zu übergeben. Beispiel:

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

Auf diese Weise wird der Wert übergeben, aber der Benutzer sieht das ausgegraute Feld. Das Attribut readonly wird nicht grau dargestellt.

+1

Sie könnten CSS auf die deaktivierten Textfelder hinzufügen, um sie grau zu machen aus. – krillgar

Verwandte Themen