Creo que es la primera vez que escribo en este foro, ya que no suelo usar JQuery, pero ahora tengo la necesidad de usarlo y tengo el problema siguiente:
Uso el plugin jquery.validate.js y me funciona perfectamente, pero cuando intento añadirle un método, no hace nada con él y tampoco me muestra ningún error, no tengo ni idea de qué hago mal por lo que no sé qué corregir.
Lo que pretendo es que no permita registrar un e-mail que sea del tipo [email protected] o info@... etc...
Aquí pongo el código (adaptado de aquí):
Código Javascript:
Ver original
$(function() { // 1. DEFINIR NUESTRO MÉTODO DE VALIDACIÓN PERSONALIZADO function coincideEmail(value, 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 value = value.toLowerCase(); value = value.split("@"); value = value[0]; if (value != "info" && value != "contact" && value != "contacto" && value != "pedidos" && value != "soporte" && value != "orders" && value != "support" && value != "admin" && value != "webmaster") { return true; //supera la validación } else { return false; //error de validación } } // 2. REGISTRAR REGLA DE VALIDACIÓN, MÉTODO DE VALIDACIÓN Y MENSAJE POR DEFECTO $.validator.addMethod("coincideemail", coincideEmail, "E-mail no válido"); //Validar el envío del formulario $("#inscripcion_usuario").validate({ //Reglas de validación rules: { nombre: { required: true, minlength: 3 }, email: { required: true, email: true, minlength: 6, maxlength: 50, coincideemail: true }, }, //Fin reglas de validación //Mensajes de error messages: { 'nombre': { required: 'Debes completar el nombre', minlength: 'El nombre debe tener un mínimo de 3 caracteres' }, 'email': { required: 'Debes completar un correo electrónico', email: 'Debes completar el correo electrónico con el formato correcto. Por ejemplo: [email protected]' }, minlength: 'Mínimo 6 caracteres', maxlength: 'Máximo 50 caracteres', coincideemail: 'E-mail no válido, intenta con otro' } }); //Fin de la validación del formulario }); //Fin de la carga del DOM
Cabe decir que este plugin ya lo he utilizado en varias ocasiones sin problemas, pero nunca he podido usar la función addMethod porque no la sé hacer funcionar.
Espero que alguien me pueda ayudar porque además, como he estado tanto tiempo investigando por toda la red, ahora ya me urge, me están metiendo prisa...
Muchas gracias por anticipado.
Edito: Me ha dado por volver a probar y aún es más grave: ni siquiera me funciona aunque no le añada el método, ufffff.....