Foros del Web » Programando para Internet » Jquery »

¿Cual es mi error? Validación de campos

Estas en el tema de ¿Cual es mi error? Validación de campos en el foro de Jquery en Foros del Web. Estoy haciendo un formulario de contacto, y utilizo ajax. El tema es que al intentar validar los campos.. me surge un gran problema, me deja ...
  #1 (permalink)  
Antiguo 04/02/2014, 13:44
 
Fecha de Ingreso: enero-2014
Mensajes: 3
Antigüedad: 10 años, 2 meses
Puntos: 0
¿Cual es mi error? Validación de campos

Estoy haciendo un formulario de contacto, y utilizo ajax. El tema es que al intentar validar los campos.. me surge un gran problema, me deja validar pero no me envía el mensaje, o me envía el mensaje pero no me valida.

El siguiente código utilizo para validar:

Código Javascript:
Ver original
  1. <script type="text/javascript" src="js/jquery_1.4.js"></script>
  2. <script type="text/javascript" src="js/jquery_validate.js"></script>
  3. <script type="text/javascript">
  4. $(function(){
  5.     $('#formInscripcion').validate({
  6.         rules: {
  7.         'nombre': 'required',
  8.         'asunto': 'required',
  9.         'mensaje': 'required',
  10.         'numero_identidad': { required: true, number: true },
  11.         'email': { required: true, email: true },
  12.         'tipo_identidad': 'required',
  13.         'deportes[]': { required: true, minlength: 1 }
  14.         },
  15.         messages: {
  16.         'nombre': 'Debe ingresar el nombre',
  17.         'asunto': 'Debe ingresar el asunto',
  18.         'mensaje': 'Debe ingresar el mensaje',
  19.         'numero_identidad': { required: 'Debe ingresar el número de télefono', number: 'Debe ingresar un número' },
  20.         'email': { required: 'Debe ingresar un correo electrónico', email: 'Debe ingresar el correo electrónico con el formato correcto. Por ejemplo: [email protected]' },
  21.         'tipo_identidad': 'Debe ingresar el número de documento',
  22.         'deportes[]': 'Debe seleccionar mínimo un deporte'
  23.         },
  24.         debug: true,
  25.         /*errorElement: 'div',*/
  26.         //errorContainer: $('#errores'),
  27.         submitHandler: function(form){  
  28.             alert('El formulario ha sido validado correctamente!');
  29.         }
  30.     });
  31. });
  32. </script>

Donde se encuentra el alert de la validación, había pensado en escribir mi código de envío:

Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.         $("#enviar").click(function(){
  3.             $("#formcontacto").fadeTo("1000",0,function() {
  4.                 $("#msj").html("Enviando..");
  5.                 $("#msj").show(1000);
  6.                 $.post("envio.php", { nombre: $("#apyn").val(), email: $("#email").val(), telefono: $("#telefono").val(), asunto:$("#asunto").val(), mensaje: $("#mensaje").val()},function(respuesta) {
  7.                 $("#msj").fadeOut(500,function(){
  8.                     if(respuesta.estado=="1"){
  9.                         $("#msj").html("Mensaje enviado.");
  10.                         $("#msj").fadeIn(1000);
  11.                         setTimeout("location.href='?seccion=contacto'",2000);
  12.                         }
  13.                     else {
  14.                         $("#msj").html("Error al enviar el mensaje.");
  15.                         $("#msj").fadeIn(500);
  16.                         setTimeout("location.href='?seccion=contacto'",2000);
  17.                         }
  18.                     });
  19.                 }, "json");
  20.             });
  21.         });
  22.     });

Y este es el código donde tengo el formulario

Código HTML:
Ver original
  1. <br /><div class="titulo">Contacto</div><br />
  2.  
  3. <div class="infocontacto"><br /><br />
  4. <big><font color="red"><i>DeOeSe Soluciones</i></font>
  5. <br /><br />
  6. 9 de Julio 978 - Gral. Cabrera <br />
  7. Tel. 0358- 493xxxx / 154833747<br />
  8. </div>
  9. <div class="infocontacto">
  10. <div id="formcontenedor">
  11.     <div id="msj"> </div>
  12.     <div id="formcontacto">
  13.     <form id="formInscripcion" method="post" action="">
  14.             <p><label for="nombre">Apellido y Nombre <font color="red">*</font></label><br />
  15.                 <input type="text" name="nombre" id="nombre" /></p>
  16.             <p><label for="email">E-mail <font color="red">*</font> <br /></label>  
  17.                 <input type="text" name="email" id="email" /></p>
  18.             <p><label for="numero_identidad">Telefono<font color="red">*</font> <br /></label>  
  19.                 <input type="text" name="numero_identidad" id="numero_identidad" /></p>
  20.             <p><label for="apellido">Asunto<font color="red">*</font> <br /></label>
  21.                 <input type="text" name="asunto" id="asunto" /></p>
  22.             <p><label for="mensaje">Mensaje<font color="red">*</font> <br /></label>
  23.                 <textarea name="mensaje" id="mensaje" cols="30" rows="5"></textarea>
  24.             </p>
  25.         <p><input type="submit" name="enviar" value="Enviar" /></p>
  26.     </form>
  27. </div></div></div>

En fin, si utilizo únicamente mi código de envío me funciona perfectamente, y si utilizo únicamente el código de validación también funciona, pero al combinarlos no.

Leí, que hay que poner form.submit(); para que envíe los datos, pero no decía donde,y ya intente de mil maneras, y no tengo idea.. Me podrían ayudar??! Se los agradezco!!!
  #2 (permalink)  
Antiguo 04/02/2014, 21:45
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: ¿Cual es mi error? Validación de campos

Tal y como lo indican en la página oficial del plugin, debes colocar la línea que indicas dentro del procedimiento submitHandler:

Código Javascript:
Ver original
  1. submitHandler: function(form){  
  2.     alert('El formulario ha sido validado correctamente!');
  3.     form.submit();
  4. }

Siempre que tengas alguna duda de este tipo, consulta el manual respectivo, saludos.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 05/02/2014, 04:24
Avatar de EmpireFX  
Fecha de Ingreso: marzo-2008
Ubicación: in da house
Mensajes: 60
Antigüedad: 16 años, 1 mes
Puntos: 3
Respuesta: ¿Cual es mi error? Validación de campos

Recuerda volver a validarlo en el lado del servidor js es facil de manipular..
  #4 (permalink)  
Antiguo 05/02/2014, 09:21
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: ¿Cual es mi error? Validación de campos

Cita:
Iniciado por EmpireFX Ver Mensaje
Recuerda volver a validarlo en el lado del servidor js es facil de manipular..
Exacto, la validación más importante es la que se realiza del lado del servidor, ya sea con PHP, ASP o JSP, puesto que -para un usuario con conocimientos en el tema- es fácil saltarse las validaciones del lado del cliente, bastaría con desactivar JS del navegador y todas las validaciones se fueron al tacho.

Si gustas, puedes leer lo que se trató en este tema: http://www.forosdelweb.com/f18/valid...script-716038/

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: ajax, html, javascript
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:14.