Un cliente me pidió que en el caso de que una persona en un formulario de contacto validado con ajax se salte el escribir el asunto, a la segunda vez no te pida de nuevo el introducirlo, yo el formulario lo valido así:
Código:
En la parte del asunto os fijaréis que hago variables, estoy intentandolo así pero no hay manera :((, porfavor ayudenme es urgente $(document).ready(function() { // Enviamos el formulario de contacto una vez hecho click al botón de enviar // $('#formulario_contacto').submit(function(e){ // Comprobamos el nombre que no esté vacío if(formulario_contacto.nombre.value.length==0) { // Resaltamos el campo formulario_contacto.nombre.focus(); // Escribimos el error en el div $('#formulario_contacto_estado').html('<div class="error"><p>Falta el nombre</p></div>'); // Mostramos el div con ajax $('#formulario_contacto_estado').fadeIn(500); // No continuamos el envio del formulario return false; } // Comprobamos el email que no esté vacío if(formulario_contacto.email.value.length==0) { // Resaltamos el campo formulario_contacto.email.focus(); // Escribimos el error en el div $('#formulario_contacto_estado').html('<div class="error"><p>Falta el email</p></div>'); // Mostramos el div con ajax $('#formulario_contacto_estado').fadeIn(500); // No continuamos el envio del formulario return false; } // Comprobamos el email que sea correcto formatoemail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; if(!formatoemail.test(formulario_contacto.email.value)) { // Resaltamos el campo formulario_contacto.email.focus(); // Escribimos el error en el div $('#formulario_contacto_estado').html('<div class="error"><p>El email no es válido</p></div>'); // Mostramos el div con ajax $('#formulario_contacto_estado').fadeIn(500); // No continuamos el envio del formulario return false; } // Comprobamos si se ha escrito algo en el campo del teléfono if(formulario_contacto.telefono.value.length!=0) { // Comprobamos el teléfono en caso de haber escrito algo if(isNaN(formulario_contacto.telefono.value)) { // Resaltamos el campo formulario_contacto.telefono.focus(); // Escribimos el error en el div $('#formulario_contacto_estado').html('<div class="error"><p>El telefono no es válido</p></div>'); // Mostramos el div con ajax $('#formulario_contacto_estado').fadeIn(500); // No continuamos el envio del formulario return false; } } // Añadimos un valor de un 0 como que el asunto aún no se ha enviado ninguna vez var asunto_intento = 0; // Comprobamos si el intento es igual a 0, por lo que si es cierto mostramos el error if(asunto_intento == false) { // Comprobamos el asunto que no esté vacío if(formulario_contacto.asunto.value.length==0) { // Resaltamos el campo formulario_contacto.asunto.focus(); // Escribimos el error en el div $('#formulario_contacto_estado').html('<div class="error"><p>Falta el asunto</p></div>'); // Mostramos el div con ajax $('#formulario_contacto_estado').fadeIn(500); // Cambiamos el valor del intento para que ya no se muestre una segunda vez var asunto_intento = 1; // No continuamos el envio del formulario return false; } } // Comprobamos el mensaje que no esté vacío if(formulario_contacto.mensaje.value.length==0) { // Resaltamos el campo formulario_contacto.mensaje.focus(); // Escribimos el error en el div $('#formulario_contacto_estado').html('<div class="error"><p>Falta el mensaje</p></div>'); // Mostramos el div con ajax $('#formulario_contacto_estado').fadeIn(500); // No continuamos el envio del formulario return false; } // Obtenemos la url de destino de ese formulario var action = $(this).attr('action'); // Obtenemos el contenido de inputs etc del formulario... var contenido = $(this).serialize(); // Comenzamos el envío $.ajax({ // Ponemos la forma de envío de datos al enviador, GET o POST type: 'POST', // Cojemos la url a la que se enviará el formulario url: action, // Incluimos los inputs y datos del formulario data: contenido, // Creamos acciones una vez enviado el formulario success: function(data) { // Ocultamos el titulo del formulario de contacto $("#contacto .titulo_apartado").fadeOut(500); // Ocultamos el formulario de contacto $("#contacto form").fadeOut(500); // Escribimos el estado una vez enviado $('#formulario_contacto_enviado').html(data); // Mostramos el div del estado de enviado setTimeout('$("#formulario_contacto_enviado").fadeIn(500);', 501); // Mostramos el boton de contactar una vez enviado $(".conta").fadeIn(500); // Vaciamos los campos una vez enviados $('#nombre').val(''); $('#email').val(''); $('#telefono').val(''); $('#asunto').val(''); $('#mensaje').val(''); } }); e.preventDefault(); }); });