Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Validar CUIT Argentina - JAvascript

Estas en el tema de Validar CUIT Argentina - JAvascript en el foro de Javascript en Foros del Web. Buenas gente, buscando y buscando hace rato que ando con este tema y necesito terminarlo que me apuran los tiempos...el tema es asi, en Argentina ...
  #1 (permalink)  
Antiguo 27/02/2013, 07:30
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Validar CUIT Argentina - JAvascript

Buenas gente, buscando y buscando hace rato que ando con este tema y necesito terminarlo que me apuran los tiempos...el tema es asi, en Argentina existe el CUIT(clave unica de identificacion tributaria) y CUIL(clave unica de identificacion laboral).
Tengo el siguiente script que supuestamente haria la validacion pero no me funciona.
El script es el siguiente.
Código:
<script type="text/javascript">
    function esCUITValida(inputValor) {
    inputString = inputValor.toString()
    if (inputString.length == 11) {
        var Caracters_1_2 = inputString.charAt(0) + inputString.charAt(1)
        if (Caracters_1_2 == "20" || Caracters_1_2 == "23" || Caracters_1_2 == "24" || Caracters_1_2 == "27" || Caracters_1_2 == "30" || Caracters_1_2 == "33" || Caracters_1_2 == "34") {
            var Count = inputString.charAt(0) * 5 + inputString.charAt(1) * 4 + inputString.charAt(2) * 3 + inputString.charAt(3) * 2 + inputString.charAt(4) * 7 + inputString.charAt(5) * 6 + inputString.charAt(6) * 5 + inputString.charAt(7) * 4 + inputString.charAt(8) * 3 + inputString.charAt(9) * 2 + inputString.charAt(10) * 1
            Division = Count / 11;
            if (Division == Math.floor(Division)) {
                return true
            }
        }
    }
    return false
}
    </script>
Y en el form
Código HTML:
<input type="text" name="cuit"/>
        <input type="button" value="Enviar" onclick="esCUITValida(inputValor)"/> 
Espero puedan ayudarme ya que soy medio de madera para esto! jaa
__________________
Nico...
  #2 (permalink)  
Antiguo 27/02/2013, 09:02
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: Validar CUIT Argentina - JAvascript

...pues mira, yo he usado un par de veces este de aca y anda muy bien...http://www.basnek.com/contenidos-ver...uit-javascript
  #3 (permalink)  
Antiguo 27/02/2013, 09:15
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Validar CUIT Argentina - JAvascript

Si, la vi pero no logre hacerla andar. Me das una mano?
Código PHP:
<head>
<
script type="text/javascript">
  function 
CPcuitValido(cuit) {
    var 
vec="new" Array(10);
    
esCuit=false;
    
cuit_rearmado="";
    
errors ''
    
for (i=0cuit.lengthi++) {   
        
caracter=cuit.charAti);
        if ( 
caracter.charCodeAt(0) >= 48 && caracter.charCodeAt(0) <= 57 )     {
            
cuit_rearmado +=caracter;
        }
    }
    
cuit=cuit_rearmado;
    if ( 
cuit.length != 11) {  // si to estan todos los digitos
        
esCuit=false;
        
errors 'Cuit <11 ';
        
alert"CUIT Menor a 11 Caracteres" );
    } else {
        
x=i=dv=0;
        
// Multiplico los dígitos.
        
vec[0] = cuit.charAt(  0) * 5;
        
vec[1] = cuit.charAt(  1) * 4;
        
vec[2] = cuit.charAt(  2) * 3;
        
vec[3] = cuit.charAt(  3) * 2;
        
vec[4] = cuit.charAt(  4) * 7;
        
vec[5] = cuit.charAt(  5) * 6;
        
vec[6] = cuit.charAt(  6) * 5;
        
vec[7] = cuit.charAt(  7) * 4;
        
vec[8] = cuit.charAt(  8) * 3;
        
vec[9] = cuit.charAt(  9) * 2;
                    
        
// Suma cada uno de los resultado.
        
for( 0;i<=9i++) {
            
+= vec[i];
        }
        
dv = (11 - (11)) % 11;
        if ( 
dv == cuit.charAt10) ) {
            
esCuit=true;
        }
    }
    if ( !
esCuit ) {
        
alert"CUIT Invalido" );
        
document.frmClientes.cuit.focus();
        
errors 'Cuit Invalido ';
    }
  
document.MM_returnValue1 = (errors == '');
}
    
</script>    
    </head> 
Y el HTML
Código HTML:
<form name="frmClientes">
        <input type="text" name="cuit" id="cuit"/>
        <input type="button" value="Enviar" onclick="CPcuitValido()"/>
        </form> 
Gracias
__________________
Nico...
  #4 (permalink)  
Antiguo 27/02/2013, 11:20
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Validar CUIT Argentina - JAvascript

Ahi creo que logre hacerlo andar pero me falta una cosita...
Al ingresar la cuit/cuil si presiono ENTER sigue de largo, como que me lo registra. Tengo que apretar TAB para saltar al boton o hacer click directamente en el boton y me dice si es incorrecto.
Como puedo corregir eso? Porque si el usuario presiona enter para saltar a otro input despues de ingresar la cuit/cuil me lo registra.
El codigo me quedo asi.
Código PHP:
<head>
<
script type="text/javascript">
    function 
ValidarCuit(cuit
    {
    var 
vec = new Array(10);
    var 
cuit form.cuit.value;
    
esCuit=false;
    
cuit_rearmado="";
    
errors ''
    
for (i=0cuit.lengthi++)
    {   
        
caracter=cuit.charAti);
        if ( 
caracter.charCodeAt(0) >= 48 && caracter.charCodeAt(0) <= 57 )
        {
            
cuit_rearmado +=caracter;
        }
    }
    
cuit=cuit_rearmado;
    if ( 
cuit.length != 11) {  // si no estan todos los digitos
        
esCuit=false;
        
errors 'Cuit < 11 ';
        
alert"CUIT Menor a 11 Caracteres" );
    } else {
        
x=i=dv=0;
        
// Multiplico los dígitos.
        
vec[0] = cuit.charAt(  0) * 5;
        
vec[1] = cuit.charAt(  1) * 4;
        
vec[2] = cuit.charAt(  2) * 3;
        
vec[3] = cuit.charAt(  3) * 2;
        
vec[4] = cuit.charAt(  4) * 7;
        
vec[5] = cuit.charAt(  5) * 6;
        
vec[6] = cuit.charAt(  6) * 5;
        
vec[7] = cuit.charAt(  7) * 4;
        
vec[8] = cuit.charAt(  8) * 3;
        
vec[9] = cuit.charAt(  9) * 2;
                    
        
// Suma cada uno de los resultado.
        
for( 0;i<=9i++) 
        {
            
+= vec[i];
        }
        
dv = (11 - (11)) % 11;
        if ( 
dv == cuit.charAt10) )
        {
            
esCuit=true;
        }
    }
    if ( !
esCuit 
    {
        
alert"CUIT Invalido" );
        
document.form.cuit.focus();
        
errors 'Cuit Invalido ';
    }
    
document.MM_returnValue1 = (errors == '');
    }
    
</script>    
    </head> 
Y en el HTML
Código HTML:
<form name="form">
        <input type="text" name="cuit" id="cuit"/>
        <input type="button" value="Enviar" onclick="ValidarCuit()" />
</form> 
Muchas gracias
__________________
Nico...
  #5 (permalink)  
Antiguo 27/02/2013, 12:18
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Validar CUIT Argentina - JAvascript

fijate con esta
Código Javascript:
Ver original
  1. function validarCuit(cuit) {
  2.  
  3.         if(cuit.length != 11) {
  4.             return false;
  5.         }
  6.  
  7.         var acumulado   = 0;
  8.         var digitos     = cuit.split("");
  9.         var digito      = digitos.pop();
  10.  
  11.         for(var i = 0; i < digitos.length; i++) {
  12.             acumulado += digitos[9 - i] * (2 + (i % 6));
  13.         }
  14.  
  15.         var verif = 11 - (acumulado % 11);
  16.         if(verif == 11) {
  17.             verif = 0;
  18.         } else if(verif == 10) {
  19.             verif = 9;
  20.         }
  21.  
  22.         return digito == verif;
  23. }

saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #6 (permalink)  
Antiguo 27/02/2013, 13:08
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Validar CUIT Argentina - JAvascript

No me funciona esa.
__________________
Nico...
  #7 (permalink)  
Antiguo 27/02/2013, 13:11
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Validar CUIT Argentina - JAvascript

Cita:
Iniciado por Nico0601 Ver Mensaje
No me funciona esa.
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. //<![CDATA[
  3. function validarCuit(cuit) {
  4.  
  5.         if(cuit.length != 11) {
  6.             return false;
  7.         }
  8.  
  9.         var acumulado   = 0;
  10.         var digitos     = cuit.split("");
  11.         var digito      = digitos.pop();
  12.  
  13.         for(var i = 0; i < digitos.length; i++) {
  14.             acumulado += digitos[9 - i] * (2 + (i % 6));
  15.         }
  16.  
  17.         var verif = 11 - (acumulado % 11);
  18.         if(verif == 11) {
  19.             verif = 0;
  20.         } else if(verif == 10) {
  21.             verif = 9;
  22.         }
  23.  
  24.         return digito == verif;
  25. }
  26.  
  27.  
  28. alert(validarCuit('20172543597')); // este es bueno
  29. alert(validarCuit('20131048131')); // este es bueno
  30. alert(validarCuit('20131048133')); // este NO
  31.  
  32. //]]>
  33. </script>

verificala
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #8 (permalink)  
Antiguo 27/02/2013, 13:20
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Validar CUIT Argentina - JAvascript

Esta bien, pero la cuestion era que al presionar ENTER dentro del input despues de haber ingresado la CUIT me la registra, como hago para que salte al otro input con ENTER.
POrque el formulario es mucho mas largo y la CUIT se verfica que este bien ingresada al presionar el boton de REGISTRO que es donde tengo el onclick.
Me explico?
Gracias
__________________
Nico...

Etiquetas: argentina, funcion, input
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 13:20.