Foros del Web » Programando para Internet » Javascript »

Sustituir todos los "." por "," mientras se escribe

Estas en el tema de Sustituir todos los "." por "," mientras se escribe en el foro de Javascript en Foros del Web. Hola a tod@s! Tengo una página con varios textbox, en estos textbox se escribirán números con decimales y me gustaría que cuando escribiesen un "." ...
  #1 (permalink)  
Antiguo 27/05/2005, 01:54
 
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 367
Antigüedad: 20 años, 1 mes
Puntos: 1
Sustituir todos los "." por "," mientras se escribe

Hola a tod@s!
Tengo una página con varios textbox, en estos textbox se escribirán números con decimales y me gustaría que cuando escribiesen un "." se sustituyese por una ",". ¿Cómo podría hacerlo?

Muchas gracias y saludos
  #2 (permalink)  
Antiguo 27/05/2005, 02:24
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años
Puntos: 8
Prueba esto:

En el evento ONCHANGE cada textbox llamas a una función en javascript, recuperas el carácter y si es un punto lo cambias por coma.

Si no te funciona ONCHANGE prueba con KEYPRESS o KEYDOWN.
  #3 (permalink)  
Antiguo 27/05/2005, 06:06
 
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 367
Antigüedad: 20 años, 1 mes
Puntos: 1
En onKeyPress detecto si la tecla pulsada es un punto con "if (event.keyCode==46)" pero no sé como cambiarla por una coma. Alguna idea?

Saludos
  #4 (permalink)  
Antiguo 27/05/2005, 07:31
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 3 meses
Puntos: 10
hola... puedes probar con algo como esto:

Código:
<html>
<head>
<script type="text/javascript">
<!--
function cambiar(que){
	que.value = que.value.replace(".", ",");
}
-->
</script>
</head>

<body>
<input type="text" name="algo" onKeyDown="cambiar(this)" />
<input type="text" name="otracosa" onKeyDown="cambiar(this)" />
</body>
</html>
El unico problema quepodrias tener es que si el ultimo caracter ingresado es un punto y no se vuelve a apretar una tecla sobre el input (se apreta con el mouse en otro lado) no te cambiaria este ultimo. Lo que podes hacer si queres evitar este problema es ademas agregarle la funcion en evento onChange.

Código:
<input type="text" name="algo" onKeyDown="cambiar(this)" onChange="cambiar(this)" />
Aunque la verdad no habria porque poner un punto al final de un numero.

Saludos
__________________
oohh... quisiera ser godines!!!
  #5 (permalink)  
Antiguo 27/05/2005, 08:14
 
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 367
Antigüedad: 20 años, 1 mes
Puntos: 1
Gracias safe, esa función me viene bastante bien, pero puestos a "afinar" lo que buscaba es que al escribir el "." salga directamente una ","
Lo que me has dicho vale, pero hasta que no escribes el siguiente caracter o sales del textbox no te sustituye ese punto por la coma y queda un poco raro.

Es posible hacer lo que intento? Gracias por vuestra ayuda.
  #6 (permalink)  
Antiguo 27/05/2005, 08:48
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 3 meses
Puntos: 10
si, es verdad lo que decis.
Probe un ratito mas y logre hacerlo con esto:

Código:
<html>
<head>
<script type="text/javascript">
<!--
function cambiar(){
	if(event.keyCode==46)
		event.keyCode=44;
}
-->
</script>
</head>

<body>
<input type="text" name="algo" onKeyPress="cambiar()" />
</body>
</html>
Espero que esto si te sirva
__________________
oohh... quisiera ser godines!!!
  #7 (permalink)  
Antiguo 27/05/2005, 09:06
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 3 meses
Puntos: 10
bue.. acabo de probar y ese codigo que te puse no funciona en firefox...
Segun lei en vez de "keyCode" en firefox y netscape tendrias que usar "which"... te dejo la pista, fijate si lo podes hacer funcionar en los dos.
__________________
oohh... quisiera ser godines!!!
  #8 (permalink)  
Antiguo 27/05/2005, 13:39
 
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 367
Antigüedad: 20 años, 1 mes
Puntos: 1
Muchas gracias safe, funciona muy bien, es justo lo que estaba buscando.

Investigaré lo del firefox, pero para el Explorer va perfecto


Saludos!
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 05:48.