Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/08/2008, 11:58
Avatar de Highlander
Highlander
 
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 18 años, 10 meses
Puntos: 4
Ayuda con validación

Buenas necesito una mano con esta validación que funciona pero pierde el focus, he averiguado sobre el focus, select pero no logro dar con una solución.

Asi la llamo:
Código:
<input name="rut" type="text" id="rut" size="15"  maxlength="15" 
onChange="Valida_Rut(this)" value="" 
onFocus="this.style.background='#E1E1E1'; this.style.color='blue'" 
onBlur="this.style.background='#FFFFFF'; this.style.color='black'" />
Código:
<script language="javascript" type="text/javascript">
function Valida_Rut( Objeto ){
var tmpstr = "";
var intlargo = Objeto.value
 if (intlargo.length > 0){ 	
    	crut = Objeto.value 
    	largo = crut.length;
    
    if ( largo < 2 ){
        alert('rut inválido')
        Objeto.focus()
        return false;
    }
    for ( i=0; i < crut.length ; i++ )
                if ( crut.charAt(i) != ' ' && crut.charAt(i) != '.' && crut.charAt(i) != '-' )
                {
                tmpstr = tmpstr + crut.charAt(i);
                }
            rut = tmpstr;
    crut=tmpstr;
    largo = crut.length;

    if ( largo > 2 )
        rut = crut.substring(0, largo - 1);
    else
        rut = crut.charAt(0);

    dv = crut.charAt(largo-1);

    if ( rut == null || dv == null )
            return 0;

    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 Ingreso es Invalido')
	Objeto.focus()
    return false;
    }
	alert('El Rut Ingresado es Correcto!')
	Objeto.focus()
    return true;
  }   
}
</script>