A propósito de una consulta en el mmug, recordé que tenía en el tintero una "extensión" del validador para campos de textos de Spry. Dicha extensión agrega un nuevo validador a los ya existentes.
La modificación la deben aplicar en el objeto, del archivo SpryValidationTextField.js,
Spry.Widget.ValidationTextField.ValidationDescriptors.
El código agregado es:
La modificación la deben aplicar en el objeto, del archivo SpryValidationTextField.js,
Spry.Widget.ValidationTextField.ValidationDescriptors.
El código agregado es:
'rut':{
//expresión regular que valida el formato
regExpFilter: /^([0-9])+\-([kK0-9])+$/,
validation: function(value){
if(value == ''){
return false;
}
var rexp = new RegExp(/^([0-9])+\-([kK0-9])+$/);
if(!value.match(rexp)){
return false;
}
var RUT = value.split("-");
var elRut = RUT[0];
var factor = 2;
var suma = 0;
var dv;
for(i=(elRut.length-1); i>=0; i--){
factor = factor > 7 ? 2 : factor;
suma += parseInt(elRut[i])*parseInt(factor++);
}
var ret = value;
dv = 11 -(suma % 11);
if(dv == 11){
dv = 0;
}else if (dv == 10){
dv = "k";
}
if(dv != RUT[1].toLowerCase()){
ret= false;
}
return ret
}
}
Lo que hice fue reutilizar la función javascript para validar rut que publiqué hace unos días. Para utlizarla basta con instanciar todos los elementos propios de los objetos de validación Spry, pero en el tipo de validación indicar el tipo "rut":
var rut = new Spry.Widget.ValidationTextField("idDelContenedor","rut",{validateOn:["blur","change"]});
Por supuesto, pueden probarlo acá y descargar el archivo SpryValidationTextField.js modificado acá.
Actualización: Lester me indicó que no funcionaba en Internet Explorer, aquí está la versión corregida.






















3 comentarios:
Estaré yo loco, pero probé el "acá" http://www.andrade.cl/labs/spry_extended.php y me dice que mi rut es incorrecto :S
¿Habrá alguna pifia por ahí, o será que no existo?
Entre tanto RUT, vas a terminar en el registro civil :D
@Lester: el problema es con Internet Explorer, nuestro departamento de soporte se encuentra trabajando en buscar la causa/solución al problema.
@Tarso: Es parte de mi plan de estafas :P.
Publicar un comentario en la entrada