Ir al contenido


Foto

validar rut al perder el focus del textbox


  • Por favor identifícate para responder
4 respuestas en este tema

#1 matteomatico

matteomatico

    Member

  • Miembros
  • PipPip
  • 31 mensajes

Escrito 17 junio 2012 - 11:41

Hola amigos queria ver si me pueden ayudar:

en un formulario a traves de un textbox quiero que al perder el focus del textbox (rut) se valide ese campo a traves de una funcion validar rut la cual la tengo pero el problema es que como soy nuevo en esto, nose como llamarlo y no se como hacer para que a traves de javascript este lo valide

esta es una parte del formulario en donde se ingresa el rut, por lo que veo la validacion del rut y digito verificador lo hace en un solo textbox, el problema es que no se como llamarlo ni se como hacerlo pa que funcione...



<html>
<head>
<title> INGRESO DE USUARIOS</title>
<script type="text/javascript" src="js/limpiar.js"></script>
<script type="text/javascript" src="js/validarut2.js"></script>

</head>

<body onLoad="limpiar_ingresa();"><center>

<form name="form1" action="ingresar.php" method="post">
<!-- Centro el contenido que este en el formulario -->
<table width="242" align="Center" >
<tr>
<td align="center" valign="top" colspan="3">
<!-- Titulo -->
<h2>Ingrese los datos correspondientes</h2></td></tr>
<!-- ingreso rut usuario-->
<tr>
<td width="80" align="right" valign="top">
Rut:</td>

<td width="150" align="left" valign="top" ><input name="rut" type="text" onBlur="ValRut('this.value');" size="10"> 
<td align="center" id="Verificacion">&nbsp;</td>
</td>
</tr>








esta es la funcion para validar el rut en javascript la cual la saque de una pagina
[js]

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.rut.focus();
window.document.form1.rut.select();
return false;
}
return true;
}

function revisarDigito2( crut )
{
largo = crut.length;
if ( largo < 2 )
{
alert("Debe ingresar el rut completo")
window.document.form1.rut.focus();
window.document.form1.rut.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.rut.focus();
window.document.form1.rut.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.rut.focus();
window.document.form1.rut.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.rut.focus();
window.document.form1.rut.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.rut.value = invertido.toUpperCase()

if ( revisarDigito2(texto) )
return true;

return false;
}

[/js]

espero me ayuden amigos!! gracias de antemanos...
  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 17 junio 2012 - 12:11

Prueba usando el evento OnBlur, que se dispara cuando se pierde el foco:

[html5]<td width="150" align="left" valign="top" onBlur="ValRut(this.value);"><input name="rut" type="text" size="10">  </td>[/html5]

Saludos.
  • 0

#3 matteomatico

matteomatico

    Member

  • Miembros
  • PipPip
  • 31 mensajes

Escrito 17 junio 2012 - 12:40

No me resulta... he buscado por toda la red y no logro dar con la solucion...

como debo poner dentro de la funcion javascript Rut() el input name "rut"???


onBlur="Rut(!!!QUE PONGO AQUI!!!)"


he intentado de las siguientes formas y no me ha resultado:


onBlur="Rut('rut';)"
onBlur="Rut('this.value';)
onBlur="Rut('document.form1.rut.value';)


Como debo hacerlo??? si hay alguna otra cosa que debo hacer... ufff...

aqui el archivo php que tengo:


<?php
require_once ("class/class.php");
?>

<html>
<head>
<title> INGRESO DE USUARIOS</title>
<script type="text/javascript" src="js/limpiar.js"></script>
<script type="text/javascript" src="js/validarut.js"></script>

</head>

<body onLoad="limpiar_ingresa();"><center>

<form name="form1" action="ingresar.php" method="post">
<!-- Centro el contenido que este en el formulario -->
<table width="242" align="Center" >
<tr>
<td align="center" valign="top" colspan="3">
<!-- Titulo -->
<h2>Ingrese los datos correspondientes</h2></td></tr>
<!-- ingreso rut usuario-->
<tr>
<td width="80" align="right" valign="top">
Rut:</td>

<td width="150" align="left" valign="top" onBlur="Rut('document.form1.rut.value');"><input name="rut" type="text" size="10">  </td>
</tr>

<!-- ingreso contraseña usuario-->
<tr>
<td valign="top" align="right">Contraseña:</td>

<td colspan="2" align="left" valign="top"><input name="contrasena" type="password" size="20"></td>
</tr>

<!-- ingreso rep contraseña usuario-->
<tr>
<td valign="top" align="right">Repita Contraseña:</td>
<!-- ingreso Nombres usuario-->
<td align="left" valign="top"><input name="contrasena2" type="password" size="20"></td></tr>

<tr>
<td valign="top" align="right">Nombres:</td>
<!-- ingreso Nombres usuario-->
<td colspan="2" align="left" valign="top">
<input name="nombres" type="text" size="25"></td></tr>

<tr>
<td valign="top" align="right">Apellido Paterno:</td>
<!-- ingreso ApellidoP usuario-->
<td colspan="2" align="left" valign="top">
<input name="apellidop" type="text" size="25"></td></tr>

<tr>
<td valign="top" align="right">Apellido Materno:</td>
<!-- ingreso ApellidoM usuario-->
<td colspan="2" align="left" valign="top">
<input name="apellidom" type="text" size="25"></td></tr>

<tr>
<td valign="top" align="right">Dirección:</td>
<!-- ingreso Direccion usuario-->
<td colspan="2" align="left" valign="top">
<input name="direccion" type="text" size="25"></td></tr>

<tr>
<td valign="top" align="right">Telefono:</td>
<!-- ingreso telefono usuario-->
<td colspan="2" align="left" valign="top">
<input name="fono" type="text" size="25"></td></tr>

<tr>
<td valign="top" align="right">Celular:</td>
<!-- ingreso telefono usuario-->
<td colspan="2" align="left" valign="top">
<input name="celular" type="text" size="25"></td></tr>

<tr>
<td valign="top" align="center" colspan="3">
<!-- linea horizontal -->
<hr />
<input type="button" value="Ingresar" title="ingresar" onClick="Validar_Vacios_ingresa();"></td>
</tr>
</table>
</form></center></body></html>







  • 0

#4 Bish0p

Bish0p

    Advanced Member

  • Miembros
  • PipPipPip
  • 64 mensajes
  • LocationMéxico, DF

Escrito 19 junio 2012 - 01:26

Hola que tal,

aqui un ejemplo de como ese usa el evento onBlur, espero te ayude.




<!DOCTYPE html>
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript">
       
       
        function evOnBlur(valor){
           
            //aqui va todo lo que quieras hacer con el valor recibido
            alert(valor);
           
        }
       
    </script>
  </head>
  <body>
      <div>
          <form name="form1" method="POST" action="">
              Valor: <input type="text" name="fnboton" value="" onblur="evOnBlur(this.value);" />
          </form>
      </div>
  </body>
</html>



Saludos
  • 0

#5 matteomatico

matteomatico

    Member

  • Miembros
  • PipPip
  • 31 mensajes

Escrito 19 junio 2012 - 07:30

Hioola bishop gracias por responder le di solucion a mi codigo... la funcion valida pero tiene algunos detalles.... pero estoy tratando de mejorarlo...
una vez que lo tenga bien 100% lo posteare!
  • 0




IP.Board spam blocked by CleanTalk.