El mensaje viene mostrado no por el propio Codeception, sino por "phpunit-bridge", así que simplemente, eliminando este paquete, se eliminan estos mensajes ;)

a librería validate de jQuery nos permite validar múltiples formatos, pero lo mejor de todo es que es totalmente configurable.
Cuando estamos creando un formulario en el que los usuarios han de insertar sus datos, muchas veces necesitamos que introduzcan su verdadero DNI. Para comprobarlo, he creado dos funciones, una para la librería de jQuery y otra para validación en la parte del servidor con PHP.
Plugin de jQuery Validate
nif: function(value, element) {
if(/^([0-9]{8})*[a-zA-Z]+$/.test(value)){
var numero = value.substr(0,value.length-1);
var let = value.substr(value.length-1,1);
numero = numero % 23;
var letra='TRWAGMYFPDXBNJZSQVHLCKET';
letra=letra.substring(numero,numero+1);
if (letra==let)
return true;
return false;
}
return this.optional(element);
},
PHP
function compruebaNIF($num){
if (strlen($num)==9)
if(ereg("^([0-9])*([A-Z])$",$num))
if($ret = $this->compruebaLletraNIF($num))
return true;
if (strlen($num)==10)
if(ereg("^([0-9])*-*([A-Za-z])$",$num))
if($ret = $this->compruebaLletraNIF($num))
return true;
return false;
}
function compruebaLletraNIF ($dni) {
$valor= (int) ($dni / 23);
$valor *= 23;
$valor= $dni - $valor;
$lletres= "TRWAGMYFPDXBNJZSQVHLCKEO";
$lletraNif= substr ($lletres,$valor,1);
if($lletraNif==substr ($dni,-1,1))
return true;
return false;
}
Si no sabes cómo usar la librería Validate de jQuery lee el siguiente post:
Validación de formularios con jQuery
También puedes añadir más funciones:
Validar Fecha en formularios
Validar Email en formularios
Validar Número de cuenta bancaria en formularios

Hola,
ResponderEliminarMi duda es cómo añadir la función. Va en el plugin validate o en el programa?
Hola,
ResponderEliminarLa función para el plugin de jQuery va dentro del archivo jquery.validate.js y se ha de definir al igual que el resto de las funciones que vienen por defecto.
Un saludo
Hola!
ResponderEliminarDonde iría la funcion y como se llamaría dicha función??
Pon un ejemplo, estoy muy verde en esto del js :P.
Gracias!!
Hola, aunque tu pregunta es muy genérica intentaré explicarte un poco como van las dos funciones:
ResponderEliminar1. La primera que ves pertenece a un pluing de jQuery. Te recomiendo que consultes el artículo "Validación de formularios con jQuery" para ver como se uas. Una vez que tengas el plugin en la carpeta que designes a tal efecto, tendrás un archio que se llamará jquery.validate.js y dentro de él es donde deberás especificar cada nueva función que quieras poner. Por defecto te trae una serie de validaciones, por lo que puedes mirar como están implementadas para después introducir las tuyas. Puedes probar a instalartelo y hacer alguna modificación en las funciones que ya vienen predefinidas y luego crear las tuyas propias.
2. Respecto a la función en PHP, está pensada para realizar la validación en el lado del servidor, es decir, una vez que el usuario envía los datos desde un formulario. A mi me gusta mucho usar clases, y de ahi que use esta función, porque se encuentra dentro de una clase llamada "validacion". Lo que deberías hacer, de forma más general, es llamar a esta función llamada "compruebaNIF", a la que le pasas una variable que ha de ser númerica. Si el nif está bien escrito te devolverá "true" y si no "false". Si no quieres usar clases y quieres probar directamente en probar si funciona puedes meter el código que está dentro de la función directamente en el código de la página (totalmente desaconsejado para cualquier página en producción), justo antes de enviar los datos a la base de datos.
Intenta hacer alguna prueba con estas cosas que te digo, anuque si estás muy verde en JavaScript te recomiendo que empiezes por algo un poco más básico como es hacer una archivo, por ejemplo, "validaciones.js" en el que tu crees alguna validación para usarla en la página antes de meterte con el plugin de jQuery. Las validaciones PHP son muy importantes por lo que estas si que las tienes que dominar si no quieres que cualquier intruso te meta codigo no deseado en tu base de datos.
Pegate un poco con esto.. y animo que es una parte muy amena y que, además de ser básico para la seguridad de tu página, se pueden hacer cosas muy chulas!!
Hola!
ResponderEliminarGracias por contestar tan rapido :)!
He mirado el script validate.js y he estado curioseando el codigo de las validaciones y ya se como y donde meter la validacion del DNI :).
Es cierto que tengo que meterle caña al "scripting" tanto sea en la parte cliente(js o ajax) como parte servidor(php), voy haciendo el trabajo y al mismo tiempo voy documentandome, es mucho lo que hay que controlar en el mundo del desarrollo web, buf! Pero no desespero, se que el camino es largo pero bonito :D.
Muchas gracias por ayudarme!!!
Un saludo!! :D
Pues.. hoy me pillaste en buena hora para contestarte!! ggg
ResponderEliminarPues... si, pegate con ese plugin que la verdad que está muy guapo y con todo lo de las validaciones.
El problema que tiene este mundo es que cuanto más sabes, tienes la sensación de que te quedan muchas más cosas por aprender, pero te sientes realizado cuando consigues que algo funcione, y sobre todo si funciona bien!!
Mucha suerte en tus andanzas y... animo!!!
Muy bueno, muchas gracias estoy realizando actualmente un proyecto y me ha venido como anillo al dedo meterle al plugin la validacion del nif
ResponderEliminar¡¡GRACIASSSSS!!
Gracias a tí por tu comentario. La verdad que comentarios así nos dan ánimos para seguir trabajando en esta línea.
ResponderEliminarGracias por este trocito de código compartido. Me ha servido de mucho. Te deseo una próspera y larga vida.
ResponderEliminarAquí una versión que valida También NIes que comienzan por X, Y y Z.
ResponderEliminarEl addMethod es par poder ponerlo ya dentro del html sin necesidad de tocar el jquery.validate.js
{
http://pastebin.com/WEvd9P7H
Muchas gracias por tu aportación.
ResponderEliminarEsta función es un perfecto complemente para el validate de jquery.
Un saludo