Foros del Web » Programando para Internet » Javascript »

Problema básico en js, llamar a una función.

Estas en el tema de Problema básico en js, llamar a una función. en el foro de Javascript en Foros del Web. hola, soy nuevo en esto de javascript y bueno tengo una duda con mi código: estoy intentando implementar mi código de javascript a mi campo ...
  #1 (permalink)  
Antiguo 22/08/2011, 06:37
Avatar de ras_chalo  
Fecha de Ingreso: junio-2010
Mensajes: 369
Antigüedad: 14 años, 5 meses
Puntos: 6
Pregunta Problema básico en js, llamar a una función.

hola, soy nuevo en esto de javascript y bueno tengo una duda con mi código:

estoy intentando implementar mi código de javascript a mi campo "rut" del formulario, el problema es que no me resulta..

El código que válida el rut en Javascript es:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function Valida_Rut(Objeto)
  3. {
  4.     var tmpstr = "";
  5.     var intlargo = Objeto.value
  6.     if (intlargo.length> 0)
  7.     {
  8.         crut = Objeto.value
  9.         largo = crut.length;
  10.         if ( largo <2 )
  11.         {
  12.             alert('rut inválido')
  13.             Objeto.focus()
  14.             return false;
  15.         }
  16.         for ( i=0; i <crut.length ; i++ )
  17.         if ( crut.charAt(i) != ' ' && crut.charAt(i) != '.' && crut.charAt(i) != '-' )
  18.         {
  19.             tmpstr = tmpstr + crut.charAt(i);
  20.         }
  21.         rut = tmpstr;
  22.         crut=tmpstr;
  23.         largo = crut.length;
  24.    
  25.         if ( largo> 2 )
  26.             rut = crut.substring(0, largo - 1);
  27.         else
  28.             rut = crut.charAt(0);
  29.    
  30.         dv = crut.charAt(largo-1);
  31.    
  32.         if ( rut == null || dv == null )
  33.         return 0;
  34.    
  35.         var dvr = '0';
  36.         suma = 0;
  37.         mul  = 2;
  38.    
  39.         for (i= rut.length-1 ; i>= 0; i--)
  40.         {
  41.             suma = suma + rut.charAt(i) * mul;
  42.             if (mul == 7)
  43.                 mul = 2;
  44.             else
  45.                 mul++;
  46.         }
  47.    
  48.         res = suma % 11;
  49.         if (res==1)
  50.             dvr = 'k';
  51.         else if (res==0)
  52.             dvr = '0';
  53.         else
  54.         {
  55.             dvi = 11-res;
  56.             dvr = dvi + "";
  57.         }
  58.    
  59.         if ( dvr != dv.toLowerCase() )
  60.         {
  61.             alert('El Rut Ingreso es Invalido')
  62.             Objeto.focus()
  63.             return false;
  64.         }
  65.         alert('El Rut Ingresado es Correcto!')
  66.         Objeto.focus()
  67.         return true;
  68.     }
  69. }
  70. </script>

Código HTML:
Ver original
  1.           <form action="validar_inventario.php" method="post">
  2.               <tr><td>Rut: </td><td><input name="rut" type="text" id="rut" size="20"  onsubmit="Valida_Rut();"/></td> </tr>
  3.               <tr><td>Contrase&ntilde;a: </td><td><input name="pass_usuario" type="text" id="pass_usuario" size="20"  /></td> </tr>
  4.              
  5.               <tr><td> </td><td><input type="submit"  value="Iniciar Sesi&oacute;n " /></td></tr>
  6.           </form>
  7.           </table>

Se que es muy básico el problema, agradeceré mucho su ayuda...

Desde ya muchas gracias!!!
  #2 (permalink)  
Antiguo 22/08/2011, 07:38
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: Problema básico en js, llamar a una función.

A) El evento onsubmit es propio del tag form, no de sus elementos.
B) Valida_Rut espera que le pases como parámetro un elemento, y no le estás pasando nada.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red

Etiquetas: js, php, formulario
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 18:31.