Muy buenas a todos:
Soy muy nuevo en Yii y PHP y tengo una duda que quizás sea bastante básica pero realmente no se como hacerlo.
En mi proyecto los usuarios hacen Login a la aplicación con su número cédula de identidad (en mi país se le llama RUT) y un password, me gustaría validar el RUT al momento de que este lo escriba, lo cual se hace con el siguiente Script que tengo guardado en un block de notas:
function checkRutField(rut)
{
var tmpstr = "";
for ( i=0; i < rut.length ; i++ )
if ( rut.charAt(i) != ' ' && rut.charAt(i) != '.' && rut.charAt(i) != '-' )
tmpstr = tmpstr + rut.charAt(i);
rut = tmpstr;
largo = rut.length;
// [VARM+]
tmpstr = "";
for ( i=0; rut.charAt(i) == '0' ; i++ );
for (; i < rut.length ; i++ )
tmpstr = tmpstr + rut.charAt(i);
rut = tmpstr;
largo = rut.length;
// [VARM-]
if ( largo < 2 )
{
alert("Debe ingresar el rut completo.");
document.login.rut_aux.focus();
document.login.rut_aux.select();
return false;
}
for (i=0; i < largo ; i++ )
{
if( (rut.charAt(i) != '0') && (rut.charAt(i) != '1') && (rut.charAt(i) !='2') && (rut.charAt(i) != '3') && (rut.charAt(i) != '4') && (rut.charAt(i) !='5') && (rut.charAt(i) != '6') && (rut.charAt(i) != '7') && (rut.charAt(i) != '8') && (rut.charAt(i) != '9') && (rut.charAt(i) !='k') && (rut.charAt(i) != 'K') )
{
alert("El valor ingresado no corresponde a un R.U.T valido.");
document.login.rut_aux.focus();
document.login.rut_aux.select();
return false;
}
}
var invertido = "";
for ( i=(largo-1),j=0; i>=0; i--,j++ )
invertido = invertido + rut.charAt(i);
var drut = "";
drut = drut + invertido.charAt(0);
drut = drut + '-';
cnt = 0;
for ( i=1,j=2; i<largo; i++,j++ )
{
if ( cnt == 3 )
{
drut = drut + '.';
j++;
drut = drut + invertido.charAt(i);
cnt = 1;
}
else
{
drut = drut + invertido.charAt(i);
cnt++;
}
}
invertido = "";
for ( i=(drut.length-1),j=0; i>=0; i--,j++ )
invertido = invertido + drut.charAt(i);
document.login.rut_aux.value = invertido;
if(!checkDV(rut))
return false;
return true;
}
function checkDV(crut)
{
largo = crut.length;
if(largo < 2){
alert("Debe ingresar el rut completo.");
document.login.rut_aux.select();
document.login.rut_aux.focus();
return false;
}
if(largo > 2){
rut = crut.substring(0, largo - 1);
}
else{
rut = crut.charAt(0);
}
dv = crut.charAt(largo-1);
if(!checkCDV(dv))
return false;
if(rut == null || dv == null){
return false;
}
var dvr = '0';
suma = 0;
mul = 2;
for (i= rut.length -1 ; i >= 0; i--){
suma = suma + rut.charAt(i) * mul;
if(mul == 7){
mul = 2;
}
else{
mul++;
}
}
res = suma % 11;
if (res==1){
dvr = 'k';
}
else{
if(res==0){
dvr = '0';
}
else{
dvi = 11-res;
dvr = dvi + "";
}
}
if(dvr != dv.toLowerCase()){
alert("EL rut es incorrecto.");
document.login.rut_aux.select();
document.login.rut_aux.focus();
//document.login.rut_aux.value = "";
return false;
}
return true;
}
function checkCDV(dvr)
{
dv = dvr + "";
if(dv != '0' && dv != '1' && dv != '2' && dv != '3' && dv != '4' && dv != '5' && dv != '6' && dv != '7' && dv != '8' && dv != '9' && dv != 'k' && dv != 'K'){
alert("Debe ingresar un digito verificador valido.");
document.login.rut_aux.select();
document.login.rut_aux.focus();
return false;
}
return true;
}
function checkAll(){
rut_val = document.login.rut_aux.value;
if(rut_val.length == 0){
alert("Ingrese su R.U.T.");
document.login.rut_aux.select();
document.login.rut_aux.focus();
return;
}
if(!checkRutField(document.login.rut_aux.value)){
// document.login.rut_aux.select();
// document.login.rut_aux.focus();
return;
}
if(document.login.clv.value.length == 0){
alert("Debes ingresar tu Clave");
document.login.clv.select();
document.login.clv.focus();
return;
}
if (document.login.clv.value.length != 6){
alert("La clave a ingresar corresponde a la clave alfanumérica de 6 caracteres, la misma que utilizas cuando llamas al 600 5 242424");
document.login.clv.select();
document.login.clv.focus();
return;
}
var tmpstr = "";
for(i=0; i < rut_val.length ; i++){
if(rut_val.charAt(i) != ' ' && rut_val.charAt(i) != '.' && rut_val.charAt(i) != '-'){
tmpstr = tmpstr + rut_val.charAt(i);
}
}
rut_val = tmpstr;
rut_valor = rut_val.substring(0,rut.length);
document.login.rut.value = rut_val.substring(0,rut.length);
document.login.dig.value = rut_val.substring(rut.length,rut.length+1);
document.login.rut_aux.value = "";
document.login.clv.value = document.login.clv.value.toUpperCase();
document.login.dig.value = document.login.dig.value.toUpperCase();
document.login.clave.value = document.login.clv.value;
document.login.clv.value = "";
document.login.submit();
}
Mi problema es que no se donde se pone dicho script o si tengo que guardarlo con alguna extensión en particular,
ni como llamar la función checkRutField(rut) para pasarle como parámetro el username que es de donde voy a tomar el RUT que ingrese el usuario.
De antemano Muchas gracias.