Foros del Web » Programando para Internet » Javascript »

Ayuda con validación

Estas en el tema de Ayuda con validación en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 27/08/2008, 11:58
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 11 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>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:09.