El problema es el siguiente... tengo un formulario animado y validado con Javascript (Funciona perfecto en todo navegador). Además, hice un envio de los datos utilizando un archivo PHP que puedo invocar mediante el atributo "action" del formulario (cosa que prefiero evitar). Y como al llamar al archivo php me lleva hasta la página donde carga el fichero php, utilice un pequeño codigo en ajax que capta el envio y evita que la página cambie. Al evitarlo, hago uso de otra pequeña funcion en javascript que modifica dos "divs" de modo que uno desaparezca y el otro aparezca (se desvanece el formulario y aparece un mensaje para el usuario).
Pese a que pudiera sonar complicado, la verdad es que el formulario es relativamente simple y dependiendo del navegador ocurre alguna anomalia diferente.
En internet explorer, que suele ser el más problematico, funciona bien todo el proceso desde la validacion hasta la recepcion del mail. Sin embargo en mozilla y chrome, solo termina al presionar el boton de envio dos veces y jamás llega a enviar los datos.
Adjunto parte del codigo utilizado para ver si alguien tiene alguna idea de lo que puede ocurrir o me ofrece alguna solución, se lo agradecería mucho, porque ya llevo un par de días tratado de resolver la unión.
Además, considero que la animacion del formulario no hace falta incluirla pues sé que opera correctamente y no hace llamados externos. Asi como la funcion de envio en php que tambien opera bien y tampoco hace llamados a funciones externas.
Gracias a cualquiera que pueda ayudarme
FORMULARIO EN HTML
Código HTML:
Ver original
VALIDACION BASE EN JS:
Código Javascript:
Ver original
function validar(f) { if (f.contact_name.value=="") { alert("Por favor ingrese su nombre"); f.contact_name.focus(); return false; } //if (/^[0-9a-z_\-\.]+@[0-9a-z\-\.]+\.[a-z]{2,4}$/i.test(f.contact_email.value)) var exr = /^[0-9a-z_\-\.]+@[0-9a-z\-\.]+\.[a-z]{2,4}$/i; if(exr.test(f.contact_email.value)) { //alert("CORRECTO"); } else { alert("La dirección de email es incorrecta"); return false; } if (f.contact_message.value=="" || f.contact_message.value=="Mensaje (Obligatorio)" ) { alert("Por favor escriba un mensaje"); f.contact_message.focus(); return false; } return true; }
FUNCION QUE HACE LOS LLAMADOS VALIDAR Y EL TRABAJO SOBRE CSS Y EVITA RECARGA (AJAX)
Código AJAX:
Ver original
function eliminar(a) { if(validar(a)) { $(document).ready(function() { // Interceptamos el evento submit $('#formu').submit(function() { // Enviamos el formulario usando AJAX $.ajax({ type: 'POST', url: $(this).attr('enviar.php'), data: $(this).serialize(), // Mostramos un mensaje con la respuesta de PHP success: function(data) { //$('#texto').html(data); $('#contact').fadeOut('slow'); $('#texto').fadeIn('slow'); } }) return false; }); }) return false; } else { return false; } }
Nuevamente gracias a cualquiera que pueda echarme una mano.