Hola amigos les cuento encontre esta clase q valida rut con prototype esta es:
Código:
//Clase Valida RUT
var RUT=Class.create();
RUT.prototype={
initialize:function(rut){
this.Orut=new String(rut);
this.Dvs=new String("123456789K0");
this.error=false;
this.nerror=-1;
this.prepara()
this.valFormato();
},
prepara:function(){
var cr=this.Orut;
if(cr!=""){
cr=cr.replace(/[\.|\-|\s]+/g,"");
this.rut=cr.substr(0,cr.length-1);
this.dv=new String(cr.substr(cr.length-1,cr.length)).toUpperCase();
}
if(String(this.rut)=='undefined') this.rut="";
if(String(this.dv)=='undefined') this.dv='-1';
return this.rut;
},
clear:function(){ return this.rut; },
valFormato:function(){
if(this.rut.length==0){ this.error=true; return this.nerror=0; }
if(this.rut.length!=String(parseInt(this.rut)).length){ this.error=true; return this.nerror=1; }
if(this.Dvs.indexOf(this.dv)==-1){ this.error=true; return this.nerror=2; }
},
format:function(){
this.prepara();
var r=$A(new String(this.rut));
var temp="";
var c=0;
r.each(function(v,i){
temp+=r[r.length-(i+1)];
if(((++c)<r.length) && (c%3)==0) temp+=".";
});
r=$A(temp);
temp="";
r.each(function(v,i){
temp+=r[r.length-(i+1)];
});
return temp+"-"+this.dv;
},
Error:function(){
return this.error
},
getNError:function(){
return this.nerror;
},
getError:function(){
if(this.nerror==-1) return "No se han identificado errores";
var errores=new Array();
errores[errores.length]="Ingrese Rut";
errores[errores.length]="Rut '"+this.rut+"' contiene caracteres no validos";
errores[errores.length]="Digito Verificador '"+this.dv+"' no es un caracter correcto";
return errores[this.nerror];
},
getOriginal:function(){
return this.Orut;
},
get:function(){
return this.rut;
},
getDv:function(){
if(this.error){ return -1; }
var r=parseInt(this.rut);
var m=1;
var suma=0;
do{
suma+=(r%10)*(m=(m<7)?++m:2);
r=parseInt(r/10);
}while(r!=0);
return this.Dvs.charAt(10-(suma%11));
},
valida:function(){
if(this.error){ return false; }
return (this.getDv()==this.dv)?true:false;
}
}
y lo q no se es como crear el objeto rut para validar el campo rut de mi form, he intentado de estas maneras:
var Rut=new RUT(rut_padre);
if(Rut.Error(rut_padre)){
alert(Rut.getError(rut_padre));
}
else{
if(Rut.valida(rut_padre)){
//Rut valido
alert ('rut valido');
}
else{
//Rut no valido
alert ('rut no valido');
}
}
donde rut_padre es el nombre del campo rut de mi form, obviamente estoy creando el objeto de la clase rut dentro de etiquetas javascript de la pagina donde tengo el campo de texto rut_padre y tb obviamente estoy llamando a la clase valida_rut q tengo en un archivo aparte, como les mostre anteriormente q lo estoy haciendo no me resulta, en la pagina desde donde baje la clase sale el ejemplo de como crear el objeto de la clase para comenzar a validar el rut esta manera es esta:
var Rut=new RUT('11111111-1');
if(Rut.Error()){
alert(Rut.getError());
}
else{
if(Rut.valida()){
//Rut valido
}
else{
//Rut no valido
}
}
lo probe pasando como parametro mi variable rut_padre, pero tampoco me funciona, ademas tengo el firebug pero este no me muestra ningun error :S porfavor amigos como tengo q crear el objeto de la clase valida_rut para poder validar los rut de mis form??? porfavor amigos agradeceria su ayuda un ejemplo una guia o lo q sea .... de antemano gracias....bye
PD: la pagina desde donde baje esta clase es:
http://emcijey.blogspot.com/2008/04/...alida-rut.html