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<script type="text/javascript" src="js/jquery_1.4.js"></script>
<script type="text/javascript" src="js/jquery_validate.js"></script>
<script type="text/javascript">
$(function(){
$('#formInscripcion').validate({
rules: {
'nombre': 'required',
'asunto': 'required',
'mensaje': 'required',
'numero_identidad': { required: true, number: true },
'email': { required: true, email: true },
'tipo_identidad': 'required',
'deportes[]': { required: true, minlength: 1 }
},
messages: {
'nombre': 'Debe ingresar el nombre',
'asunto': 'Debe ingresar el asunto',
'mensaje': 'Debe ingresar el mensaje',
'numero_identidad': { required: 'Debe ingresar el número de télefono', number: 'Debe ingresar un número' },
'email': { required
: 'Debe ingresar un correo electrónico', email
: 'Debe ingresar el correo electrónico con el formato correcto. Por ejemplo: [email protected]' }, 'tipo_identidad': 'Debe ingresar el número de documento',
'deportes[]': 'Debe seleccionar mínimo un deporte'
},
debug: true,
/*errorElement: 'div',*/
//errorContainer: $('#errores'),
submitHandler: function(form){
alert('El formulario ha sido validado correctamente!');
}
});
});
</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$(document).ready(function() {
$("#enviar").click(function(){
$("#formcontacto").fadeTo("1000",0,function() {
$("#msj").html("Enviando..");
$("#msj").show(1000);
$.post("envio.php", { nombre: $("#apyn").val(), email: $("#email").val(), telefono: $("#telefono").val(), asunto:$("#asunto").val(), mensaje: $("#mensaje").val()},function(respuesta) {
$("#msj").fadeOut(500,function(){
if(respuesta.estado=="1"){
$("#msj").html("Mensaje enviado.");
$("#msj").fadeIn(1000);
setTimeout("location.href='?seccion=contacto'",2000);
}
else {
$("#msj").html("Error al enviar el mensaje.");
$("#msj").fadeIn(500);
setTimeout("location.href='?seccion=contacto'",2000);
}
});
}, "json");
});
});
});
Y este es el código donde tengo el formulario
Código HTML:
Ver original
<div class="infocontacto"><br /><br /> <big><font color="red"><i>DeOeSe Soluciones
</i></font> 9 de Julio 978 - Gral. Cabrera
<br /> Tel. 0358- 493xxxx / 154833747
<br /> <div class="infocontacto"> <div id="formcontenedor"> <form id="formInscripcion" method="post" action=""> <p><label for="nombre">Apellido y Nombre
<font color="red">*
</font></label><br /> <input type="text" name="nombre" id="nombre" /></p> <p><label for="email">E-mail
<font color="red">*
</font> <br /></label> <input type="text" name="email" id="email" /></p> <p><label for="numero_identidad">Telefono
<font color="red">*
</font> <br /></label> <input type="text" name="numero_identidad" id="numero_identidad" /></p> <p><label for="apellido">Asunto
<font color="red">*
</font> <br /></label> <input type="text" name="asunto" id="asunto" /></p> <p><label for="mensaje">Mensaje
<font color="red">*
</font> <br /></label> <p><input type="submit" name="enviar" value="Enviar" /></p>
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!!!