Envío del valor de un campo de entrada deshabilitado

Respuestas:

238

Quiero deshabilitar un campo de entrada en un formulario y cuando envío el formulario, los valores del formulario deshabilitado no se envían .

Caso de uso: estoy tratando de obtener Lat Lng de Google Map y quiero mostrarlo ... pero no quiero que el usuario lo edite .

Puede usar la readonlypropiedad en su campo de entrada

<input type="text" readonly="readonly" />
Sarfraz
fuente
2
Tenga en cuenta que la entrada aún podrá recibir el enfoque. Ver: stackoverflow.com/questions/5443952/…
Rafael Oliveira
5
Gran respuesta 8 años después. Solo quería agregar eso para que el texto parezca no editable agrego el CSS:input:read-only { color:grey; }
UltrasoundJelly
21

Sé que esto es antiguo, pero me encontré con este problema y ninguna de las respuestas es adecuada. La solución de nickf funciona pero requiere javascript. La mejor manera es deshabilitar el campo y aún pasar el valor es usar un campo de entrada oculto para pasar el valor al formulario. Por ejemplo,

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

De esta forma se pasa el valor pero el usuario ve el campo en gris. El atributo readonly no lo atenúa.

Abu Sulaiman
fuente
1
Puede agregar CSS en los cuadros de texto desactivados para atenuarlos.
krillgar
¿Es valuenecesario en entrada deshabilitada?
Ömer An
10

también puede usar el atributo de solo lectura: la entrada no se atenuará pero no será editable

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

Los elementos de entrada tienen una propiedad llamada disabled. Cuando se envíe el formulario, simplemente ejecute un código como este:

var myInput = document.getElementById('myInput');
myInput.disabled = true;
nickf
fuente
5
Al abordar la pregunta original, para pasar el valor durante el envío del formulario, la propiedad "deshabilitada" debe ser "falso" en lugar de "verdadero".
Daniel Vukasovich