2010-10-28 35 views
74

Quiero deshabilitar un campo de entrada, pero cuando envío el formulario, todavía debe pasar el valor.Envío del valor de un campo de entrada deshabilitado

Caso de uso: Estoy tratando de obtener latitud y longitud desde Google Maps y quiero mostrarlo, pero no quiero que el usuario lo edite.

¿Esto es posible?

+1

posible duplicado de [Las entradas de formularios desactivados no aparecen en la solicitud] (http://stackoverflow.com/questions/7357256/disabled-form-inputs-do-not-appear-in-request) –

Respuesta

159

I Wanna Desactivar un campo de entrada en un formulario y cuando envíe el formulario de los los valores de la forma desactivada no es presentado de .

Caso de uso: Estoy intentando conseguir Lat Lng de Google Map y quiero mostrarlo .. pero no quiero que el usuario editarlo.

Usted puede utilizar la propiedad readonly en su campo de entrada

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

Esto no deshabilitará el campo como él quiera (el valor aún será pasado) –

+9

@Pekka: Que * pienso * lo que quiere. Cuando lo desactiva, los valores no se pasan, pero con solo lectura, puede evitar que se edite y el valor seguirá pasándose. – Sarfraz

+0

@Sarfraz ah, es suficiente. Podría ser en ambos sentidos, cierto. –

4

Los elementos de entrada tienen una propiedad llamada disabled. Cuando el formulario envía, basta con ejecutar algún código como este:

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

¡Simple e inteligente! Gracias ! –

+0

MacGyver estaría orgulloso –

+0

Al abordar la pregunta original, para pasar el valor durante el envío del formulario la propiedad "deshabilitada" debe ser "falsa" en lugar de "verdadera". –

10

también se puede utilizar el atributo Sólo lectura: la entrada no va a estar en gris pero no va a ser editables

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

gracias: D para obtener la explicación –

15

Sé que esto es viejo, pero acabo de toparme 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 de solo lectura no lo atenúa.

+1

Puede agregar CSS en los cuadros de texto deshabilitados para convertirlos en grises. fuera. – krillgar

Cuestiones relacionadas