Foros del Web » Programando para Internet » Javascript »

Validacion de rut

Estas en el tema de Validacion de rut en el foro de Javascript en Foros del Web. HOLA TENGO UNA VALIDADCION DE RUT QUEFUNCIONA SUPER BIEN PERO NO TIENE EFECTO EN MOZILLA 3.0 ME PODRIAN AYUDAR A RESOLVER ESTE PROBLEMA Código HTML: ...
  #1 (permalink)  
Antiguo 06/10/2008, 13:00
Avatar de wladtepes  
Fecha de Ingreso: febrero-2008
Mensajes: 140
Antigüedad: 16 años, 3 meses
Puntos: 0
Exclamación Validacion de rut

HOLA TENGO UNA VALIDADCION DE RUT QUEFUNCIONA SUPER BIEN PERO NO TIENE EFECTO EN MOZILLA 3.0 ME PODRIAN AYUDAR A RESOLVER ESTE PROBLEMA

Código HTML:


<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>




<script>
function valida_envia(){
    //valido el nombre
    if (document.registration_form.nombre.value.length==0){
       alert("Tiene que escribir su nombre")
       document.registration_form.nombre.focus()
       return 0;
    }
   
} 

function checkRutField(rut)
{
  var tmpstr = "";
  for ( i=0; i < rut.length ; i++ )
    if ( rut.charAt(i) != ' ' && rut.charAt(i) != '.' && rut.charAt(i) != '-' )
      tmpstr = tmpstr + rut.charAt(i);
  rut = tmpstr;
  largo = rut.length;
// [VARM+]
  tmpstr = "";
  for ( i=0; rut.charAt(i) == '0' ; i++ );
  for (; i < rut.length ; i++ )
     tmpstr = tmpstr + rut.charAt(i);
  rut = tmpstr;
  largo = rut.length;
// [VARM-]
  if ( largo == 0 )
  {
    alert("Debe ingresar el rut completo.");
    document.registration_form.rut.focus();
    document.registration_form.rut.select();
    return false;
  }
  for (i=0; i < largo ; i++ )
  {
    if( (rut.charAt(i) != '0') && (rut.charAt(i) != '1') && (rut.charAt(i) !='2') && (rut.charAt(i) != '3') && (rut.charAt(i) != '4') && (rut.charAt(i) !='5') && (rut.charAt(i) != '6') && (rut.charAt(i) != '7') && (rut.charAt(i) != '8') && (rut.charAt(i) != '9') && (rut.charAt(i) !='k') && (rut.charAt(i) != 'K') )
    {
      alert("El valor ingresado no corresponde a un R.U.T valido.");
      document.registration_form.rut.focus();
      document.registration_form.rut.select();
      return false;
    }
  }
  var invertido = "";
  for ( i=(largo-1),j=0; i>=0; i--,j++ )
    invertido = invertido + rut.charAt(i);
  var drut = "";
  drut = drut + invertido.charAt(0);
  drut = drut + '-';
  cnt = 0;
  for ( i=1,j=2; i<largo; i++,j++ )
    {
    if ( cnt == 3 )
    {
      drut = drut + '.';
      j++;
      drut = drut + invertido.charAt(i);
      cnt = 1;
    }
    else
    {      drut = drut + invertido.charAt(i);
      cnt++;
    }
  }
  invertido = "";
  for ( i=(drut.length-1),j=0; i>=0; i--,j++ )
    invertido = invertido + drut.charAt(i);
  document.registration_form.rut.value = invertido;
  if(!checkDV(rut))
    return false;
  return true;
}
function checkDV(crut)
{
  largo = crut.length;
  if(largo < 2){
    alert("Debe ingresar el rut completo.");
    document.registration_form.rut.select();
    document.registration_form.rut.focus();
    return false;
  }
  if(largo > 2){
    rut = crut.substring(0, largo - 1);
  }
  else{
    rut = crut.charAt(0);
  }
  dv = crut.charAt(largo-1);
  if(!checkCDV(dv))
     return false;
  if(rut == null || dv == null){
      return false;
  }
  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.");
    document.registration_form.rut.select();
    document.registration_form.rut.focus();
    //document.registration_form.rut.value = "";
    return false;
  }
  return true;
}
function checkCDV(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.");
    document.registration_form.rut.select();
    document.registration_form.rut.focus();
    return false;
  }
  return true;
}

	function siguiente(){
		document.registration_form.paso.value=1;
		document.registration_form.submit();
	}
	
	function anterior(){
		document.registration_form.paso.value=-1;
		document.registration_form.submit();
	}

	function Procesa(nPaso)
	{
	
		  if (document.registration_form.username.value.length <4 || document.registration_form.username.value.length > 15)
		  {
			alert('Debes ingresar un nombre de usuario (entre 4 y 15 caracteres)');
			document.registration_form.username.focus();
			return false;
			}	
		
		function dv(T)
			{
			var M=0,S=1;
				for(;T;T=Math.floor(T/10))
						S=(S+T%10*(9-M++%6))%11;
				return S?S-1:'k';
			}
		
		function esrut(T)
		{
			miRut = T.value;
			nn=miRut.length;
			if (nn <4) 
				return false;
			mm=nn-2;
			gg=String(miRut.charAt(mm));
			if (gg != "-")
			{
				return false;
			}	
			digito=String(miRut.charAt(nn-1));
			n=1;
			num=0;
			j=1;
			for(i=mm-1;i>=0;i--){
				if (String(miRut.charAt(i))=='.'){
					if (j%4 !=0)
					{
						return false;
					}	
				}
				else
				{		
					num=num + n*parseInt(miRut.charAt(i));
					n=n*10;
				}
				j=j+1;	
			}
			digito2=dv(num);
			if ((digito!=digito2 && digito!='K') || (digito=='K' && digito2!='k'))
				return false;
			return true;				
		}
	

	if(nPaso==1)
		siguiente();
	else
		anterior();
	}
		

 
</script>
</head>

<body>
<input name="paso" type="hidden" value="0">
		<input name="pasoActual" type="hidden" value="0">




<table>

		
      <form action="contactenos.php" method="post" name="registration_form">
 

 <tr><td>  
      Nombres: 
	  </td>
	 <td> 
	  <input name="nombre" type="text" id="nombre" ><br>
 </td>
 </tr>
 
 
 <tr>
	 <td>
   Rut
	   </td>
	 <td>
	  
<input name="rut" id="rut" type="text" maxlength="14" onBlur="if (document.registration_form.rut.value.length>= 0){checkRutField(document.registration_form.rut.value)}else{alert(document.registration_form.rut.value.length)}"> 



<br>
 </td>
 </tr>
 <tr>
<td>
 E-mail:
</td>
	 <td>
	   <input name="email" type="text"><br>
 </td>
 </tr>
 <tr>
	 <td>
      Telefono: 
	  
	   </td>
	 <td>
	 <input name="telefono" type="text"><br>
 </td>
 </tr>
 <tr>
	 <td>
      Comentarios:
	   </td>
	 <td>

      <textarea name="comentarios" cols="30" rows="5">

      </textarea><br>
 </td>
 </tr>
 <tr>
	 <td>
      
</td>
<td>


      <input name="enviar" type="submit" value="enviar" onclick="valida_envia()">

      </form>
</td>
<tr>
</table>



</body>
</html>



DE ANTEMANO MUCHAS GRACIAS

Última edición por wladtepes; 08/10/2008 a las 07:41
  #2 (permalink)  
Antiguo 08/10/2008, 07:42
Avatar de wladtepes  
Fecha de Ingreso: febrero-2008
Mensajes: 140
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Validacion de rut

necesito ayuda por favor
  #3 (permalink)  
Antiguo 08/10/2008, 09:21
 
Fecha de Ingreso: noviembre-2004
Mensajes: 37
Antigüedad: 19 años, 5 meses
Puntos: 0
Respuesta: Validacion de rut

Prueba con esto:

Código:
function valida_rut()
{   
  	
		if(document.form1.rut.value=="")
	   	{
	   	alert("Falta ingresar un numero de rut!!");
	   	document.form1.rut.select();
       		document.form1.rut.focus(); 
	   	return false; 
	   	}

		if(document.form1.dv.value=="")
		{  
	   	alert("Debe ingresar un digito verificador");
	   	document.form1.dv.select();
       		document.form1.dv.focus(); 
	   	return false;
  		}


	if(calcula_dv(document.form1.rut.value)==document.form1.dv.value)
      return true; 
    else
	{  
	   alert("Rut no válido");
	   document.form1.dv.value="";
	   document.form1.rut.select();
       document.form1.rut.focus(); 
	   return false;
	}
}

function calcula_dv(T)    //digito verificador
{  
      var M=0,S=1;
	  for(;T;T=Math.floor(T/10))
      S=(S+T%10*(9-M++%6))%11;
	  return S?S-1:'k';
 }
Luego llamas a la funcion valida_rut ej: onclick="return valida_rut();"

Suerte!
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 03:43.