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


101

Chcę wyłączyć pole wejściowe, ale kiedy wysyłam formularz, powinno nadal przekazywać wartość.

Przykład zastosowania: próbuję uzyskać szerokość i długość geograficzną z Map Google i chcę je wyświetlić, ale nie chcę, aby użytkownik je edytować.

czy to możliwe?


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" />

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.


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" />

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;

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.