Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/10/2013, 11:14
rober18
 
Fecha de Ingreso: mayo-2013
Ubicación: cali
Mensajes: 58
Antigüedad: 11 años
Puntos: 0
Pregunta duda jquery.validate

Buenos dias tengan todos ustedes, vengo a pedirles de que por favor me ayuden con este problema:

estoy utilizando el plugin de validacion de jquery llamado jquery.validate.js, pero necesito que, cuando (y solo cuando) se cumplan las condiciones de validacion expuestos en las reglas del plugin, ejecute una peticion ajax (el motivo de la peticion es irrelevante) aqui expongo el codigo:

Código:
$(document).ready(function() {
		function validaform()
		{
			$("#formcontacto").validate({
				rules: {
					no_fact: { required: true, digits: true},
					generada: { required: true, date: true},
					vencimiento: { required: true, date: true},
					concepto: { required: true },
					descuento: { number: true , maxlength: 5, minlength: 5},
					valor: { required: true , number: true },
					recibido: { required: true , maxlength: 2, minlength: 2},
					fecha: { required: true , date: true}
				},
				messages: {
					no_fact: "el campo 'No Factura' es obligatorio y debe ser un numero",
					generada: "el campo 'Generada' es obligatorio y debe ser una fecha elegida en el calendario",
					vencimiento: "el campo 'Vencimiento' es obligatorio y debe ser una fecha elegida en el calendario",
					concepto: "el campo 'Concepto' es obligatorio",
					descuento: "el campo 'Descuento' debe ser un numero decimal y tener max y min 4 caracteres ej: 25.0",
					valor: "el campo 'Valor' es olbigatorio y debe ser un numero entero o decimal",
					recibido: "el campo '¿Recibido?' es obligatorio y debe tener como maximo y minimo dos(2) digitos (si/no)",
					fecha: "el campo 'Fecha de elaboracion' es obligatorio y debe ser una fecha elegida en el calendario"
				}
			});

			return true;
		}
		if(validaform())
		{
			$("#enviar").click(function(){
				var no_factura = $('#no_fact').val();

				$.ajax({
					type: 'POST',
					url:'http://localhost/facturas/index.php/Factura_controller/comparar_nofactura',
					data: {no_factura : no_factura },
					success: function(resp)
					{
						if (resp === "") {
							$('#formcontacto').submit();
						}
						else
						{
							alert("El numero de factura especificado ya existe");

						}
					}
				});
				return false	
			});
		}
	});
Este codigo lo realize guiandome con un ejemplo de google donde hacian la validacion sin el plugin, pero cuando trate de realizarlo en mi caso, no funciono.

En resumen, lo que quiero es que, solo en el caso de que se cumpla esto (es decir, si los registros del formulario cumplen con estas reglas de validacion)....

Código:
			$("#formcontacto").validate({
				rules: {
					no_fact: { required: true, digits: true},
					generada: { required: true, date: true},
					vencimiento: { required: true, date: true},
					concepto: { required: true },
					descuento: { number: true , maxlength: 5, minlength: 5},
					valor: { required: true , number: true },
					recibido: { required: true , maxlength: 2, minlength: 2},
					fecha: { required: true , date: true}
				},
				messages: {
					no_fact: "el campo 'No Factura' es obligatorio y debe ser un numero",
					generada: "el campo 'Generada' es obligatorio y debe ser una fecha elegida en el calendario",
					vencimiento: "el campo 'Vencimiento' es obligatorio y debe ser una fecha elegida en el calendario",
					concepto: "el campo 'Concepto' es obligatorio",
					descuento: "el campo 'Descuento' debe ser un numero decimal y tener max y min 4 caracteres ej: 25.0",
					valor: "el campo 'Valor' es olbigatorio y debe ser un numero entero o decimal",
					recibido: "el campo '¿Recibido?' es obligatorio y debe tener como maximo y minimo dos(2) digitos (si/no)",
					fecha: "el campo 'Fecha de elaboracion' es obligatorio y debe ser una fecha elegida en el calendario"
				}
			});

se ejecute esta peticion ajax:


Código:
			$("#enviar").click(function(){
				var no_factura = $('#no_fact').val();

				$.ajax({
					type: 'POST',
					url:'http://localhost/facturas/index.php/Factura_controller/comparar_nofactura',
					data: {no_factura : no_factura },
					success: function(resp)
					{
						if (resp === "") {
							$('#formcontacto').submit();
						}
						else
						{
							alert("El numero de factura especificado ya existe");

						}
					}
				});
				return false	
			});

les agradesco mucho lo que me puedan ayudar al respecto