Foros del Web » Programando para Internet » Javascript »

Número, barra y YA!

Estas en el tema de Número, barra y YA! en el foro de Javascript en Foros del Web. ¡ Hola foreros ! Es la primera vez que hago un grito de auxilio y es por física pereza de no investigar y ahorrar trabajo ...
  #1 (permalink)  
Antiguo 23/05/2009, 00:40
Avatar de jenusys  
Fecha de Ingreso: diciembre-2008
Ubicación: Ahí mismo.
Mensajes: 216
Antigüedad: 15 años, 4 meses
Puntos: 11
Número, barra y YA!

¡ Hola foreros !
Es la primera vez que hago un grito de auxilio y es por física pereza de no investigar y ahorrar trabajo así que ahí verán si me alcahuetean.

Tengo un <input type="text"> y necesito ingresar muchos números de facturas allí separadas por una barra "/" y cada número de factura tiene 7 dígitos o caracteres. Lo que necesito es que esa barrita me aparezca automáticamente luego de escribir cada número de factura, es decir, que me la ponga después de escribir 7 caracteres.
¿Me explico?

1234567/asdfghj/9876543/

¡Gracias de antemano!
  #2 (permalink)  
Antiguo 23/05/2009, 00:56
 
Fecha de Ingreso: abril-2009
Mensajes: 56
Antigüedad: 15 años
Puntos: 4
Respuesta: Número, barra y YA!

Lo que se me ocurre asi medio rápido es hacer un contador de caracteres y llamarlo en el onkeyup. Esta funcion contaría los caracteres insertados despues de una / o desde el inicio (si aun no se ha insetado ninguna) y si hay 7 caracteres en el iput le agregaría automaticamente una barra.
Y para hacerlo un poco más dinamico podrias hacer otra funcion a la que llamarias desde onchange y que se encargaría de que exista una / cada 7 caracteres de otra forma la agregaria despues de dicha cantidad.
Y ya para completar podrias prohibir que se esriba caracteres especiales. Solo letras (mayusculas y/o minusculas) y numeros. Esto no debería molestarte el ingreso ya que las / se agregarias mediante codigo y esta funcion debería ser llamada desde el keypress.

Más o menos eso se me ocurre. El código no te lo pongo porque son las 4 am en argentina y ya me tome una par de birras asi que si empiezo a programar va a salir cualquier cosa :S

Saludos
  #3 (permalink)  
Antiguo 23/05/2009, 09:57
Avatar de jenusys  
Fecha de Ingreso: diciembre-2008
Ubicación: Ahí mismo.
Mensajes: 216
Antigüedad: 15 años, 4 meses
Puntos: 11
Respuesta: Número, barra y YA!

¡ Gracias GAMMASSP !

Bueno, tengo solo ésto por mi ignorancia en JS, pero aún tengo dos problemas:

1. El más grande problema es que la barra me la pone fuera del INPUT y por ende fuera de todo contexto.

2. Solo me cuenta siete caracteres pero luego de eso no me contaría otros siete caracteres.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<script type="text/javascript">

function siete_chars()
{
if (document.getElementById('barrita').value.length >= 7)
{
document.write("/")
}
}

</script>
</head>

<body>
<input type="text" id="barrita" onKeyUp="siete_chars()">
</body>
</html>
  #4 (permalink)  
Antiguo 23/05/2009, 11:48
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 15 años
Puntos: 19
Respuesta: Número, barra y YA!

Pero hombre, no uses document.write, eso escribe en el documento no en el input. Piensa en de que manera posible el explorador va a llegar a entender que cuando dices escribe en el documento te refieres a que escriba en el input?.

Código javascript:
Ver original
  1. documet.getElementsById('barrita').value = documet.getElementsById('barrita').value + "/";
  #5 (permalink)  
Antiguo 23/05/2009, 13:54
Avatar de jenusys  
Fecha de Ingreso: diciembre-2008
Ubicación: Ahí mismo.
Mensajes: 216
Antigüedad: 15 años, 4 meses
Puntos: 11
Respuesta: Número, barra y YA!

GRACIAS ANESGY! Cuenta con karma positivo de mi parte. Aunque tu sintaxis tenía dos errores no de lógica sino de escritura: document y Element.

Ahora solo me queda el último problema y es que luego de esos primeros siete caracteres y barra me ponga otros siete caracteres y luego otra barra.

¿Alquien que me ayude con eso?

Última edición por jenusys; 23/05/2009 a las 23:04
  #6 (permalink)  
Antiguo 23/05/2009, 22:00
 
Fecha de Ingreso: abril-2009
Mensajes: 56
Antigüedad: 15 años
Puntos: 4
Respuesta: Número, barra y YA!

Te desarrollo algo de código en vivo. Haber si te sirve:

Si vas a meter los numeros todos en un mismo text y queres que se vallan poniendo las barras mediante vas escibiendo, podes usar esto.

Código HTML:
Ver original
  1. <input type="text" id="barrita" onkeyup="barras(this)" onchange="barras(this)">
Código JavaScript:
Ver original
  1. function barras(campo){
  2.   var z = 0;
  3.   var nuevoValor = "";
  4.   for(var i = 0; i < campo.value; i++){
  5.     z++;
  6.     if(z == 7){
  7.       z = 0;
  8.       if(campo.value.charAt(i) != "/"){
  9.         nuevoValor += campo.value.subString(0, i + 1) + "/";
  10.         if(i + 1 < valor){
  11.           nuevoValor += campo.value.subString(i + 1);
  12.         }
  13.       }  
  14.     }
  15.   }
  16.   campo.value = nuevoValor;
  17. }
Con esta función te debería alcanzar. Yo aca te la puse en el onkeyup y en el onchange suponiendo que vos escribis los caracteres todos en el text que te va agregando las barras pero podes usarla de varias formas.

Exitos.

P.D.: como verás hoy estoy re buena gente... hasta te programo gratis :P

Última edición por gammassp; 23/05/2009 a las 22:16 Razón: Horrores de ortografía :S
  #7 (permalink)  
Antiguo 23/05/2009, 23:10
Avatar de jenusys  
Fecha de Ingreso: diciembre-2008
Ubicación: Ahí mismo.
Mensajes: 216
Antigüedad: 15 años, 4 meses
Puntos: 11
Respuesta: Número, barra y YA!

GAMMASSP ¡PARCERO!

Mil gracias por la ayuda tan desinteresada. Ví que corregiste algo en tu código y te cuento que aún no me funciona aunque tu lógica parece estar bien. Buscaré qué es lo que te falta (o si no es mucha molestia puedes buscarlo tú y mejorarás tu ranking ). De cualquier forma vuelvo a agradecerte pues ya tengo material para trabajar. Cuenta con karma positivo.

  #8 (permalink)  
Antiguo 24/05/2009, 22:21
 
Fecha de Ingreso: abril-2009
Mensajes: 56
Antigüedad: 15 años
Puntos: 4
Respuesta: Número, barra y YA!

Es cierto, había un par de cosas mal... Por dios como voy a poner subString!!! que animal...
Eso es por no probar las cosas :P
Es que escribí la función directamente en el foro sin siquiera probarla :S

Acá te mando esta, que si está probada...

Código JavaScript:
Ver original
  1. function barras(campo){
  2.   var z = 0;
  3.   var primeraMitad = "";
  4.   var segundaMitad = "";
  5.   for(var i = 0; i < campo.value.length; i++){
  6.     z++;
  7.     if(z == 7){
  8.       z = 0;
  9.       if(campo.value.charAt(i + 1) != "/"){
  10.         i++;
  11.         primeraMitad = campo.value.substring(0, i) + "/";
  12.         if(i + 1 < campo.value.length){
  13.           segundaMitad = campo.value.substring(i);
  14.         }
  15.         campo.value = primeraMitad + segundaMitad;
  16.         primeraMitad = "";
  17.         segundaMitad = "";
  18.       }else{
  19.         i++;
  20.       }
  21.     }
  22.   }
  23. }
  #9 (permalink)  
Antiguo 25/05/2009, 11:56
Avatar de jenusys  
Fecha de Ingreso: diciembre-2008
Ubicación: Ahí mismo.
Mensajes: 216
Antigüedad: 15 años, 4 meses
Puntos: 11
Respuesta: Número, barra y YA!

Por aquí decimos: "Vos sos de los mios", o "Parcero" a nuestros más queridos amigos, entonces GAMMASSP vos sos de los mios parcero.

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 08:22.