Hola amigos,
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:
$(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();
});
});
En la parte del asunto os fijaréis que hago variables, estoy intentandolo así pero no hay manera :((, porfavor ayudenme es urgente