Foros del Web » Programando para Internet » Javascript »

Agregar caracteres

Estas en el tema de Agregar caracteres en el foro de Javascript en Foros del Web. necesito darle este formato a un numero xxx-xxx-xxxx de manera que cuando escriba los 3 primeros automaticamente ponga el - y cuando escriba los otro ...
  #1 (permalink)  
Antiguo 21/09/2004, 08:18
 
Fecha de Ingreso: febrero-2004
Ubicación: Resistencia - Argentina
Mensajes: 299
Antigüedad: 20 años, 2 meses
Puntos: 0
Agregar caracteres

necesito darle este formato a un numero xxx-xxx-xxxx de manera que cuando escriba los 3 primeros automaticamente ponga el - y cuando escriba los otro 4 ponga -.
Esto está dentro de un textbox.-
  #2 (permalink)  
Antiguo 21/09/2004, 08:29
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Mira si te sirve este código:
http://www.karlankas.net/codigo/formato
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 21/09/2004, 08:58
 
Fecha de Ingreso: febrero-2004
Ubicación: Resistencia - Argentina
Mensajes: 299
Antigüedad: 20 años, 2 meses
Puntos: 0
Gracias por contestar, lo que necesito es que a medida que vaya introduciendo los numeros(solo deberia dejar escribir numeros) escriba los -.
  #4 (permalink)  
Antiguo 21/09/2004, 10:08
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Código HTML:
<html>
<head>
	<title>Untitled</title>
	<script language="javascript"> 
<!-- 
otro=0;
function LP_data(){ 
var key=window.event.keyCode;//codigo de tecla. 
if (key < 48 || key > 57){//si no es numero 
window.event.keyCode=0;//anula la entrada de texto. 
}}
function anade(esto){
if(esto.value.length>otro && (esto.value.length==3 || esto.value.length==7)){esto.value+="-";}
otro=esto.value.length
}

--> 
</script> 
</head>

<body>
<form>
<input type="text" maxlength="12" onkeypress="LP_data()" onkeyup="anade(this)">
</form>


</body>
</html> 
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #5 (permalink)  
Antiguo 21/09/2004, 10:32
 
Fecha de Ingreso: febrero-2004
Ubicación: Resistencia - Argentina
Mensajes: 299
Antigüedad: 20 años, 2 meses
Puntos: 0
Perfecto!!!!!!!!! muchas gracias
  #6 (permalink)  
Antiguo 21/09/2004, 10:36
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
De nada!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #7 (permalink)  
Antiguo 21/09/2004, 10:42
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Había un problema en lo que te he puesto y es si borraban uno de los guiones no se volvía a poner. Con el siguiente código se arregla:
Código HTML:
<html>
<head>
	<title>Untitled</title>
	<script language="javascript"> 
<!-- 
otro=0;
function LP_data(){ 
var key=window.event.keyCode;//codigo de tecla. 
if (key < 48 || key > 57){//si no es numero 
window.event.keyCode=0;//anula la entrada de texto. 
}}
function anade(esto){
if(esto.value.length>otro){
if(esto.value.length==3 || esto.value.length==7){esto.value+="-";}
}
if(esto.value.length<otro){
if(esto.value.length==3 || esto.value.length==7){esto.value=esto.value.substring(0,esto.value.length-1);}
}
otro=esto.value.length
}

--> 
</script> 
</head>

<body>
<form>
<input type="text" maxlength="12" onkeypress="LP_data();anade(this)">
</form>


</body>
</html> 
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #8 (permalink)  
Antiguo 21/09/2004, 10:46
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
He acortado un poco el tamaño del código:
Código HTML:
<html>
<head>
	<title>Untitled</title>
	<script language="javascript"> 
<!-- 
otro=0;
function LP_data(){ 
var key=window.event.keyCode;//codigo de tecla. 
if (key < 48 || key > 57){//si no es numero 
window.event.keyCode=0;//anula la entrada de texto. 
}}
function anade(esto){
anadir=(esto.value.length>otro)?'+="-"':'=esto.value.substring(0,esto.value.length-1)'

if(esto.value.length==3 || esto.value.length==7){
eval('esto.value'+anadir);
}

otro=esto.value.length
}

--> 
</script> 
</head>

<body>
<form>
<input type="text" maxlength="12" onkeypress="LP_data();anade(this)">
</form>


</body>
</html> 
Ahora está bien!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #9 (permalink)  
Antiguo 21/09/2004, 11:35
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola Roli y KarlanKas.

He probado el código con Nocilla (saludos caricatos ) y no marcha, así que he hecho algunos cambio y esto es lo que ha salido:
Código HTML:
<html>
<head>
	<title>Untitled</title>
	<script language="javascript"> 
<!-- 
otro=0;
function LP_data(e,esto){ 
var key=(document.all) ? e.keyCode : e.which;//codigo de tecla. 
if (key < 48 || key > 57)//si no es numero 
return false//anula la entrada de texto.
else anade(esto); 
}
function anade(esto){
anadir=(esto.value.length>otro)?'+="-"':'=esto.value.substring(0,esto.value.length-1)'

if(esto.value.length==3 || esto.value.length==7){
eval('esto.value'+anadir);
}

otro=esto.value.length
}

--> 
</script> 
</head>

<body>
<form>
<input type="text" maxlength="12" onkeypress="return LP_data(event,this)">
</form> 
Saludos,
  #10 (permalink)  
Antiguo 21/09/2004, 13:04
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Ole ole!

Sabía que con Nocilla no funcionaría. Lo que no sabía es que fuera tan fácil arreglarlo!

Un saludo JavierB!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #11 (permalink)  
Antiguo 21/09/2004, 13:07
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola a todos:

Tengo que admitir que JavierB se ha convertido en un auténtico especialista en "Nocilla" o "Nescafé"...

(¡Aunque a veces te pillo !)

Un saludo también para KarlanKas (y también para Roly...)

__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #12 (permalink)  
Antiguo 21/09/2004, 13:31
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
HAy un pequeño fallo. Al ir a borrar un guión borra el guión y nada más. En el código último que hice borraba el guión y la cifra anterior. Esto lo hacía para que no pusiera una cifra en vez del guión (si borras el guión te deja poner una cifra en su lugar...).

Alguna idea?
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #13 (permalink)  
Antiguo 21/09/2004, 15:27
 
Fecha de Ingreso: febrero-2004
Ubicación: Resistencia - Argentina
Mensajes: 299
Antigüedad: 20 años, 2 meses
Puntos: 0
Muchas Gracias a todos por contestar, creo que con eso tiene que andar de sobra
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 20:04.