Senden des Werts eines deaktivierten Eingabefelds

100

Ich möchte ein Eingabefeld deaktivieren, aber wenn ich das Formular abschicke, sollte es trotzdem den Wert übergeben.

Anwendungsfall: Ich versuche, Längen- und Breitengrade von Google Maps abzurufen und möchte sie anzeigen, möchte jedoch nicht, dass der Nutzer sie bearbeitet.

Ist das möglich?

Harsha MV
quelle
1
Mögliches Duplikat von Eingaben
Alireza Fallah

Antworten:

237

Ich möchte ein Eingabefeld in einem Formular deaktivieren, und wenn ich das Formular sende, werden die Werte aus dem deaktivierten Formular nicht gesendet .

Anwendungsfall: Ich versuche, Lat Lng von Google Map zu erhalten und möchte es anzeigen. Ich möchte jedoch nicht, dass der Benutzer es bearbeitet .

Sie können die readonlyEigenschaft in Ihrem Eingabefeld verwenden

<input type="text" readonly="readonly" />
Sarfraz
quelle
2
Beachten Sie, dass der Eingang weiterhin den Fokus erhalten kann. Siehe: stackoverflow.com/questions/5443952/…
Rafael Oliveira
5
Tolle Antwort 8 Jahre später. Ich wollte das nur hinzufügen, damit der Text nicht bearbeitet werden kann. Ich füge das CSS hinzu:input:read-only { color:grey; }
UltrasoundJelly
21

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

<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 schreibgeschützte Attribut wird nicht ausgegraut.

Abu Sulaiman
quelle
1
Sie können den deaktivierten Textfeldern CSS hinzufügen, um sie auszublenden.
Krillgar
Ist das valuebei deaktivierter Eingabe notwendig?
Ömer An
10

Sie können auch das Readonly-Attribut verwenden: Die Eingabe wird nicht grau dargestellt, kann jedoch nicht bearbeitet werden

<input type="text" name="lat" value="22.2222" readonly="readonly" />
pjnovas
quelle
2

Eingabeelemente haben eine Eigenschaft namens disabled. Wenn das Formular gesendet wird, führen Sie einfach einen Code wie folgt aus:

var myInput = document.getElementById('myInput');
myInput.disabled = true;
nickf
quelle
5
Um den Wert während der Formularübermittlung zu übergeben, sollte die Eigenschaft "disabled" "false" anstelle von "true" sein, um den Wert während der Formularübermittlung zu übergeben.
Daniel Vukasovich