Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/07/2015, 13:48
Avatar de GusGarsaky
GusGarsaky
 
Fecha de Ingreso: febrero-2015
Mensajes: 33
Antigüedad: 9 años, 8 meses
Puntos: 2
Respuesta: ejecutar fancybox despues del submit

El código que has puesto explica tu consulta. Te dejo un ejemplo de lo que deberías hacer:

Código Javascript:
Ver original
  1. document.querySelector('#tuform').addEventListener('submit', function(e) {
  2.     e.preventDefault(); // previene el submit predeterminado
  3.  
  4.     // obtienes la info del formulario y la agregas al objeto
  5.     var data = {}
  6.     data['nombre'] = document.querySelector('#txtname');
  7.     data['apellido'] = document.querySelector('#txtlastname');
  8.     data['dni'] = document.querySelector('#txtdni');
  9.  
  10.     // envías los datos por AJAX
  11.     var xhr = new XMLHttpRequest();
  12.     // esta ruta es el destino de la petición
  13.     xhr.open('POST', 'ruta/al/script', true);
  14.     // habilita el envío de json
  15.     xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
  16.     xhr.onload = function() {
  17.         if(xhr.status == 200) {
  18.             $("#modalGracias").show();
  19.                        $.fancybox({
  20.                           autoSize: true,
  21.                           scrolling: "no",
  22.                           href : "gracias.html",
  23.                           type: "iframe"
  24.                        });      
  25.         } else {
  26.             // muestras el diálogo Error
  27.         }
  28.     }
  29.     // envías la info
  30.     xhr.send('info='+data);
  31. });

Para validar, puedes hacerlo por expresiones regulares. Por ejemplo, para validar un DNI de 8 dígitos:

Código HTML:
Ver original
  1. <input type="text" id="txtdni" pattern="^(?!\s*$)[0-9\s]{8}$" />

Última edición por GusGarsaky; 28/07/2015 a las 13:56