Estoy peleandome con esta librería y creo que es muy buena , pero tengo un problema , el formulario se me valida correctamente pero hay algunos valores cómo el dni y el email que verificio si existen en la bd y es obvio que si existen uno u otro , esto lo hago de la siguiente forma.
Código Javascript:
Ver original
$( ".dni" ).keyup(function() { var dni = $('.dni').val(); console.log(dni); $.ajax({ url: 'finddni/'+dni, type: 'get', success: function (data) { if(data.userfind.length === 0){ $('.checkdni').empty(); $('.checkdni').append("Te puedes registrar con este DNI"); }else{ $('.checkdni').empty(); $('.checkdni').append("El DNI ya existe"); } } }); });
Me funciona correctamente , pero hay alguna forma de añadirlo a la librería validate ?
Código Javascript:
Ver original
//form validation rules $("#registro").validate({ debug: true, errorElement: "em", validClass: "has-success", success: function(label) { label.removeClass("error").addClass("success"); }, rules: { nif: { required: true, esdnivalido: true }, name: { required: true, minlength:3, onlyletter: true, }, surname: { required: true, minlength:3, onlyletter: true }, files: { required: true, onlyphotos:true }, multiplo: { required: true }, comunidades: { required: true }, provincias: { required: true }, pueblos: { required: true }, email: { required: true, valemail:true }, password: { required: true, minlength:3 }, confirmarpassword: { required: true, equalTo: "#password" }, presentacion: { minlength:15, required: true } }, messages: { nif: { required: "El NIF es obligatorio", minlength: "El NIF tiene que tener una longitud de 9 carácteres", }, name: { required: "El nombre es obligatorio", minlength:"El nombre tiene que tener una longitud de 3 carácteres" }, surname: { required: "El apellido es obligatorio", minlength: "El apellido tiene que tener una longitud de 3 carácteres" }, files: { required: "La foto de perfil es obligatoria" }, multiplo: { required: "La foto de perfil es obligatoria", onlyphotos:"El formato de las fotos es incorrecto" }, birthday: { required: "La fecha de nacimiento es obligatorio", }, comunidades: { required: "La comunidad autónoma es obligatorio", }, provincias: { required: "La província es obligatoria", }, pueblos: { required: "El pueblo es obligatorio", }, email: { required: "El email es obligatorio", }, password: { required: "La contraseña es obligatoria", minlength: "Tu contraseña tiene que tener más de tres carácteres" }, confirmarpassword: { required: "Confirmar el password es obligatorio" }, presentacion: { required: "El texto de presentación es obligatorio", minlength: "Tiene que a ver un mínimo de 15 carácteres" } }, submitHandler: function(form) { form.submit(); } }); } } $.validator.addMethod("esdnivalido", isdniValid, "El formato del DNI no es válido"); $.validator.addMethod("esformatopreciocorrecto", isdniValid, "El formato introducido no es válido"); function isdniValid(dni, element, param) { //value es el valor actual del elemento que se está validando //element es el elemento DOM que se está validando //param son los parámetros especificados por el método // p. ej. en el caso de minlength="3", param será 3 // en caso de que el método no tenga parámetros, param será true var numero, let, letra; var expresion_regular_dni = /^[XYZ]?\d{5,8}[A-Z]$/; dni = dni.toUpperCase(); if(expresion_regular_dni.test(dni) === true){ numero = dni.substr(0,dni.length-1); numero = numero.replace('X', 0); numero = numero.replace('Y', 1); numero = numero.replace('Z', 2); let = dni.substr(dni.length-1, 1); numero = numero % 23; letra = 'TRWAGMYFPDXBNJZSQVHLCKET'; letra = letra.substring(numero, numero+1); if (letra != let) { //alert('Dni erroneo, la letra del NIF no se corresponde'); return false; }else{ //alert('Dni correcto'); return true; } }else{ //alert('Dni erroneo, formato no válido'); return false; } } $.validator.addMethod("anyDate", function(value, element) { return value.match(/^(0?[1-9]|[12][0-9]|3[0-1])[/., -](0?[1-9]|1[0-2])[/., -](19|20)?\d{2}$/); }, "Por favor introduce la fecha en el formato DD/MM/YY o DD/MM/YYYY" ); $.validator.addMethod("onlyletter", function(value, element) { return value.match(/[a-zA-Z]/); }, "Sólo letras disponibles" ); $.validator.addMethod("onlyphotos", function(value, element) { return value.match(/\.(jpg|png)$/i); }, "El formato de archivo es incorrecto" ); $.validator.addMethod("valemail", function(value, element) { return value.match(/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/); }, "El formato del email es incorrecto" ); //when the dom has loaded setup form validation rules $(D).ready(function($) { JQUERY4U.UTIL.setupFormValidation(); });