Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/04/2012, 09:14
maucker2004
 
Fecha de Ingreso: julio-2006
Mensajes: 15
Antigüedad: 17 años, 9 meses
Puntos: 0
Aplicación javascrip no funciona en IE

Estimados, Tengo un js que formatea un rut , que lo saqué desde este foro.
Lo malo que no funciona en IE8

Alguna solución

dejo los codigos

Código:
function revisarDigito(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");        
    window.document.form1.rutContacto.focus();        
    window.document.form1.rutContacto.select();        
    return false;    
  }    
  return true;
}

function revisarDigito2(crut){    
  largo = crut.length;    
  if(largo<2){        
    alert("Debe ingresar el rut completo")        
    window.document.form1.rutContacto.focus();        
    window.document.form1.rutContacto.select();        
    return false;    
  }    
  if(largo>2)        
    rut = crut.substring(0, largo - 1);    
  else        
    rut = crut.charAt(0);    
    dv = crut.charAt(largo-1);    
    revisarDigito( dv );    

  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 es incorrecto")        
        window.document.form1.rutContacto.focus();        
        window.document.form1.rutContacto.select();        
        return false    
    }

    return true
}

function Rut(texto){    
  var tmpstr = "";    
  for ( i=0; i < texto.length ; i++ )        
    if ( texto.charAt(i) != ' ' && texto.charAt(i) != '.' && texto.charAt(i) != '-' )
        tmpstr = tmpstr + texto.charAt(i);    
    texto = tmpstr;    
    largo = texto.length;    

    if ( largo < 2 ){        
        alert("Debe ingresar el rut completo")        
        window.document.form1.rutContacto.focus();        
        window.document.form1.rutContacto.select();        
        return false;    
    }    

    for (i=0; i < largo ; i++ ){            
        if ( texto.charAt(i) !="0" && texto.charAt(i) != "1" && texto.charAt(i) !="2" && texto.charAt(i) != "3" && texto.charAt(i) != "4" && texto.charAt(i) !="5" && texto.charAt(i) != "6" && texto.charAt(i) != "7" && texto.charAt(i) !="8" && texto.charAt(i) != "9" && texto.charAt(i) !="k" && texto.charAt(i) != "K" ){            
            alert("El valor ingresado no corresponde a un R.U.T valido");            
            window.document.form1.rutContacto.focus();            
            window.document.form1.rutContacto.select();            
            return false;        
        }    
    }    

    var invertido = "";    
    for ( i=(largo-1),j=0; i>=0; i--,j++ )        
        invertido = invertido + texto.charAt(i);    
    var dtexto = "";    
    dtexto = dtexto + invertido.charAt(0);    
    dtexto = dtexto + '-';    
    cnt = 0;    

    for ( i=1,j=2; i<largo; i++,j++ ){        
        //alert("i=[" + i + "] j=[" + j +"]" );        
        if ( cnt == 3 ){            
            dtexto = dtexto + '.';            
            j++;            
            dtexto = dtexto + invertido.charAt(i);            
            cnt = 1;        
        }else{                
           dtexto = dtexto + invertido.charAt(i);            
           cnt++;        
        }    
    }    

    invertido = "";    
    for ( i=(dtexto.length-1),j=0; i>=0; i--,j++ )        
        invertido = invertido + dtexto.charAt(i);    

    window.document.form1.rutContacto.value = invertido.toUpperCase()        

    if(revisarDigito2(texto))        
        return true;    
    return false;
}

tiene k editar donde sale document.form1.rutContacto.value con tus respectivos datos de tu form y lo usas de la sgte manera ewn tu form.

Código:
<input type="text" name="rutContacto" id="rutContacto" onblur="return Rut(form1.rutContacto.value)" />