Foros del Web » Programando para Internet » Javascript »

Contar caracteres en campo

Estas en el tema de Contar caracteres en campo en el foro de Javascript en Foros del Web. Hola. Tengo el siguiente problema. Tengo un formulario: Código: <form name="registro" method="post" action="save.php" > El cual estoy validando la entrada de datos. Tengo dos campos ...
  #1 (permalink)  
Antiguo 03/03/2010, 11:17
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 9 meses
Puntos: 2
Pregunta Contar caracteres en campo

Hola.

Tengo el siguiente problema.
Tengo un formulario:
Código:
<form name="registro" method="post" action="save.php" >
El cual estoy validando la entrada de datos.
Tengo dos campos llamados "RFC" y "CURP" los cuales quiero contar para que el usuario introduzca correctamente la cantidad de caracteres que se necesitan; 13 para el RFC y 18 para CURP.
Intenté esto...
Hice un archivo valida.js el cual tiene el siguiente código para contar los caracteres del campo RFC:
Código:
function cuenta_car()
{
  
  var contador=0;
  contador=document.registro.idrfc.value.length;
  if(contador<13)
     {
       alert("Recuerde que el RFC requiere de trece caracteres");
       document.registro.idrfc.focus();
     }
}
Pero no me resulta, si se fijan en el código donde esta el formulario:
Código:
<p class="style3"> RFC:<input id="inputs" type="text" name="idrfc" size=13 maxlength=13 onKeyPress="cuenta_car();"></p>
...
<p class="style3">CURP:<input id="inputs" type="text" name="curp_profesor" size=18 maxlength=18>
uso el evento onKeyPress e incluso usé onKeyUp pero me manda en cada teclazo el alert "Recuerde que el RFC requiere de trece caracteres".

Lo que quiero hacer es que cuando el usuario cambie al siguiente campo (ya que tengo más en el formulario), el js verifique si escribió los trece caracteres y le mande el mensaje de advertencia. Lo mismo para el campo CURP de 18 caracteres.

Ah por cierto, el focus() del js a veces no funciona, saben porqué???

Les agradecería su ayuda.
Gracias por su tiempo y respuestas, saludos :)
  #2 (permalink)  
Antiguo 03/03/2010, 12:57
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Contar caracteres en campo

checa con esto:
Código Javascript:
Ver original
  1. <script language="javascript">
  2. function cuenta_car(input){
  3.     contador=document.getElementById(input.id).value;
  4.     if(contador.length < input.size){
  5.         alert(input.id+" Recuerde que el "+input.name+" requiere de "+input.size+" caracteres");
  6.         document.getElementById(input.id).focus();
  7.     }
  8. }
  9. </script>
Código HTML:
Ver original
  1. <p class="style3"> RFC:<input type="text" id="idrfc" name="rfc" size="13" maxlength="13" onblur="cuenta_car(this);"></p>
  2. <p class="style3">CURP:<input type="text" id="curp_profesor" name="curp" size="18" maxlength="18" onblur="cuenta_car(this);"></p>
suerte.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #3 (permalink)  
Antiguo 03/03/2010, 13:41
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Contar caracteres en campo

Gracias por tu tiempo y respuesta eits, me sirvió bastante.

Saludos :)
  #4 (permalink)  
Antiguo 03/03/2010, 13:42
Avatar de sublime_style  
Fecha de Ingreso: junio-2008
Mensajes: 69
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Contar caracteres en campo

En teoria deberia andarte bien, no revise la sintaxis.

Puedes si quieres, pasar el contador a una global y contar con cada keuyup uno mas o no ser que sea un backspace o un supr, pero es mas rebuscada y menos optima que la que usaste.

Te recomedaria que pruebes Jquery, xq facilita mucho el tema de los selectores, quizas simplemente estes apuntando mal al elemento

Etiquetas: caracteres, contar, campos
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 06:12.