2011-05-06 17 views
9

Pero sin el efecto desagradable de que el nuevo valor se muestra en el formulario.jQuery: Cómo modificar el campo de formulario antes de enviar

si lo hago:

$('#submit_button').click(function(){ 
    $('#field1').val('newval'); 
    $('#form1').submit(); }); 

El # campo1 mostrará (por una fracción de segundo) el nuevo valor que es un poco feo ..

+0

Parece que podrías colocar la lógica donde realmente no la quieres. ¿Qué estás tratando de lograr exactamente? ¿Cuál es el propósito/razonamiento detrás de esa operación específica? – Christopher

Respuesta

15

en el código anterior, parece que estás ignorando por completo el valor del elemento de forma visible, si es así ¿por qué no poner un campo de formulario oculto con el nombre que está utilizando, e ignorar lo que está escrito a través del campo de texto.

En cambio, si ese código no era real y que está pensando en modificar el valor en lugar, puede utilizar la misma técnica, algo como esto:

<input type="hidden" name="field1" id="field1" value="" /> 
<input type="text" name="field1_real" id="field1_real" value="" /> 

jQuery:

$('#submit_button').click(function() { 
    var newValue = $('#field1_real').val(); // Modify me 
    $('#field1').val(newValue); 
    $('#form1').submit(); 
}); 
+6

Esto no cuenta si presionas enter en el formulario, sin embargo. –

+0

Creo que esto funcionará para hacer clic en el botón * o * al presionar enter: '$ ('# form1'). Submit (function() {...});' –

+0

@StephenR Sí, pero no estoy Asegúrese de que '# submit_button' es un botón de envío real, por lo tanto, está enviando el formulario (y por qué no respondí a Matt como fuera del alcance) –

-1

utilizar un campo oculto en el formulario para enviar newval junto con el valor original?

No estoy muy seguro de por qué intentarías hacer lo que estás haciendo.

+0

Larga historia. Simplemente parchear algo para que funcione nuevamente después de romperlo – GabiMe

0

¿Por qué no utiliza un campo oculto?

<input type="hidden"> 
Cuestiones relacionadas