Przesłanie wartości wyłączonego pola wejściowego

Odpowiedzi:

238

Chcę wyłączyć pole wprowadzania w formularzu, a kiedy przesyłam formularz, wartości z wyłączonego formularza nie są przesyłane .

Przykład zastosowania: próbuję pobrać Lng Lng z mapy Google i chcę go wyświetlić ... ale nie chcę, aby użytkownik go edytować .

Możesz użyć readonlywłaściwości w swoim polu wejściowym

<input type="text" readonly="readonly" />
Sarfraz
źródło
2
Zwróć uwagę, że wejście nadal będzie mogło otrzymać fokus. Zobacz: stackoverflow.com/questions/5443952/…
Rafael Oliveira
5
Świetna odpowiedź 8 lat później. Chciałem tylko dodać, że aby tekst wyglądał na nieedytowalny, dodaję css:input:read-only { color:grey; }
UltrasoundJelly
21

Wiem, że to stare, ale właśnie napotkałem ten problem i żadna z odpowiedzi nie jest odpowiednia. Rozwiązanie nickf działa, ale wymaga javascript. Najlepszym sposobem jest wyłączenie pola i nadal przekazywanie wartości, to użycie ukrytego pola wejściowego do przekazania wartości do formularza. Na przykład,

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

W ten sposób wartość jest przekazywana, ale użytkownik widzi wyszarzone pole. Atrybut readonly nie powoduje jego wyszarzenia.

Abu Sulaiman
źródło
1
Możesz dodać CSS do wyłączonych pól tekstowych, aby je wyszarzać.
krillgar
Czy jest to valuekonieczne przy wyłączonym wejściu?
Ömer An
10

możesz także użyć atrybutu Tylko do odczytu: dane wejściowe nie będą wyszarzone, ale nie będzie można ich edytować

<input type="text" name="lat" value="22.2222" readonly="readonly" />
pjnovas
źródło
2

Elementy wejściowe mają właściwość o nazwie disabled. Kiedy formularz zostanie przesłany, po prostu uruchom kod podobny do tego:

var myInput = document.getElementById('myInput');
myInput.disabled = true;
nickf
źródło
5
W odpowiedzi na pierwotne pytanie, aby przekazać wartość podczas przesyłania formularza, właściwość „disabled” powinna mieć wartość „false” zamiast „true”.
Daniel Vukasovich