2010-04-08 16 views
5

Cuando envío este formulario, los valores simplemente desaparecen de los cuadros de texto. Me gusta que permanezcan impresos en los cuadros de texto. ¿Cómo puedo hacer eso?¿Cómo guardo los datos del formulario después de enviar el formulario usando javascript?

<form id="myform" method="get" action="" onSubmit="hello();"> 

     <input id="hour" type="text" name="hour" style="width:30px; text-align:center;" /> : 
     <input id="minute" type="text" name="minute" style="width:30px; text-align:center;" /> 
     <br/> 
     <input type="submit" value="Validate!" /> 
    </form> 

    <style type="text/css"> 
    .error { 
     color: red; 
     font: 10pt verdana; 
     padding-left: 10px 
    } 
    </style> 
<script type="text/javascript"> 
function hello(){ 

    var hour = $("#hour").html(); 
    alert(hour); 
} 
    $(function() { 
     // validate contact form on keyup and submit 
     $("#myform").validate({ 
      //set the rules for the fild names 
      rules: { 
       hour: { 
        required: true, 
        minlength: 1, 
        maxlength: 2, 
        range:[0,23] 
       }, 
       minute: { 
        required: true, 
        minlength: 1, 
        maxlength: 2, 
        range:[0,60] 
       }, 
      }, 
      //set messages to appear inline 
      messages: { 
       hour: "Please enter a valid hour", 
       minute: "Please enter a valid minute" 
      } 
     }); 


    }); 
    </script> 
+0

dónde quiere mantener que los datos lo que quiere hacer con que los datos de peticiones eexplain su pregunta en detalle. – Salil

+0

gracias por los comentarios, cuando envío el formulario anterior, los valores simplemente desaparecen de los cuadros de texto, me gusta que permanezcan impresos en los cuadros de texto, ¿cómo hago eso? muchas gracias – Lina

Respuesta

4

Cuando envía un formulario, toda la página se reemplaza con la respuesta del servidor. Si desea permanecer en la página (en lugar de tener que reemplazarla por la respuesta), puede utilizar jQuery.post o jQuery.ajax para enviar los datos del formulario al servidor en lugar de enviar el formulario.

+0

Esto suena muy interesante, voy a googlear un poco para ver cómo hacer el jquery.post y darle un comentario – Lina

+2

@Lina: desconfíe de varios de los artículos que "envían un formulario usando jQuery" que ve allí, verás muchas cosas como esta: 'var q ="? fname = "+ $ ('# firstNameField'). val() +" & lname = "+ $ ('# lastNameField'). val () ";' presentado como si fuera algo bueno. Realmente, * realmente * necesita codificar esos valores de parámetro a través de 'encodeURIComponent', no puede simplemente tomarlos como en ese código. (Considere lo que sucedería si tuviera un campo de "nombre de la compañía" y alguien puso el valor "Foo & Bar Limited" - que '&' realmente necesita codificación.) No es complicado, pero la gente no lo aprovecha. ¡Disfruta! –

+0

ese es un gran consejo que lo haré siempre aprecio :) – Lina

9

Tan pronto como envíe la página, los datos se envían al servidor y se carga una página nueva. En su caso, esta es la misma página que antes, pero eso no hace una diferencia para el navegador. Para conservar los valores, debe completar los valores en el servidor mientras procesa la página.

Normalmente, puede copiar los datos de los parámetros de solicitud HTML en los campos.

+1

Normalmente, usted * no puede * simplemente copiar los parámetros de solicitud de HTML en los campos. HTML-escape primero, o su página estará abierta a ataques XSS. – Tomalak

+1

¿Eh? Cuando lea los parámetros, su marco HTML debería haberlos decodificado por usted. Cuando los escribe, su escritor de salida debe codificarlos correctamente. No veo tu punto. –

0

Puede usar cookies de JavaScript para mantener los valores dentro. Básicamente, accede a algo llamado document.cookie.

0

Como ejemplo, para retener los datos en una entrada de texto:

<input type="text" name="inputText" id="inputText" placeholder="Enter the name of your all-time favorite Duckbilled Platypus" value="@Request["inputText"]" autofocus style="display: inline-block;" /> 
0

En la etiqueta de formulario, incluyen onsubmit ="return false" para evitar restablecimiento formulario. Por ejemplo:??

<form name = "inputNumbers" onsubmit ="return false"> 
+0

Esto no funciona ... La función Enviar está deshabilitada de esta manera – MartinGGWW

Cuestiones relacionadas