Foros del Web » Programando para Internet » Javascript »

decimal correcto en input

Estas en el tema de decimal correcto en input en el foro de Javascript en Foros del Web. Hola tengo un formulario con varios campos numericos donde debo permitir el ingreso de numeros decimales. existe algun codigo ya hecho o alguien tiene alguno ...
  #1 (permalink)  
Antiguo 12/12/2008, 08:26
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
decimal correcto en input

Hola

tengo un formulario con varios campos numericos donde debo permitir el ingreso de numeros decimales.
existe algun codigo ya hecho o alguien tiene alguno
que me permita solo ingresar numeros y decimales? o sea que no permita meter ni espacios ni letras ni nada diferente a numeros y 1punto o 1 coma.
o sea decimales..

gracias
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #2 (permalink)  
Antiguo 12/12/2008, 08:31
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: decimal correcto en input

Fijate en este enlace:
http://www.telefonica.net/web2/blas-...idarformu.html
  #3 (permalink)  
Antiguo 12/12/2008, 08:42
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: decimal correcto en input

pues yo tengo este codigo pero tengo un problema que cuando tengo varios campos solo me deja escribir una coma y cuando paso al campo siguiente ya no me deja teclear las comas


function decimal(){
var key=window.event.keyCode;//codigo de tecla.
//solo se puede introducir comas
if ((key < 48 || key > 57) && key!=44)
{//si no es numero
window.event.keyCode=0;//anula la entrada de texto.
}
// no deja introducir mas de una coma.
if (key == 44) {
if (coma==false) {
coma=true;
} else {
window.event.keyCode=0;
return false;
}
}
}


como podria solucionarlo?
para que me permita escribir una coma solamente por cada uno de los campos que tenga en mi formulario?
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #4 (permalink)  
Antiguo 12/12/2008, 08:57
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: decimal correcto en input

Ese código sólo puede funcionar en Explorer.
  #5 (permalink)  
Antiguo 12/12/2008, 09:05
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: decimal correcto en input

gracias por responder.
no importa que solo funcione en internet explorer ya que este codigo esta en una intranet de una empresa y ahi solo usan ese explorador.
hay alguna forma de mejroarlo o existe otro codigo que solucione mi problema?
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #6 (permalink)  
Antiguo 12/12/2008, 09:52
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: decimal correcto en input

Probá así:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>ejemplo</title>
<
script>
function 
validar(e){
obj=e.srcElement || e.target;
tecla_codigo = (document.all) ? e.keyCode e.which;
if(
tecla_codigo==8)return true;
patron =/[d.]/;
tecla_valor String.fromCharCode(tecla_codigo);
control=(tecla_codigo==46 && (/[.]/).test(obj.value))?false:true
return patron.test(tecla_valor) &&  control;

}

</script>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
<textarea name="textarea" onkeypress="return validar(event)"></textarea>
<textarea name="textarea2" onkeypress="return validar(event)"></textarea>
</form>
</body>
</html> 
  #7 (permalink)  
Antiguo 12/12/2008, 10:02
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: decimal correcto en input

me deja introducir vaios puntos ya en varios campos
pero no me deja introducir el numero ke va despues del punto
ejemplo:
3.5 me keda asi 3.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #8 (permalink)  
Antiguo 12/12/2008, 10:25
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: decimal correcto en input

Colocá tu código porque en realidad, en el ejemplo que puse no sucede eso.
  #9 (permalink)  
Antiguo 12/12/2008, 10:29
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: decimal correcto en input

es el mismo codigo ke me mandaste no le hice ningun cambio.

me deja los numeros asi 3.
no me lo deja terminar para que quede asi 3.5
el otro problema es que me deja ingresar letras y se supone que es un campo tipo decimal
solo deberia permitir numeros y puntos
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #10 (permalink)  
Antiguo 12/12/2008, 11:00
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: decimal correcto en input

Acabo de probarlo en ópera, safari, chrome, firefox, explorer 5.5, explorer 6 y explorer 7 y no sucede lo que describís

EDITO: EL BBCODE elimina una barra cuando usas las envolturas php. El código que en realidad te había pasado es este:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>ejemplo</title>
<script>
function validar(e){
obj=e.srcElement || e.target;
tecla_codigo = (document.all) ? e.keyCode : e.which;
if(tecla_codigo==8)return true;
patron =/[\d.]/;
tecla_valor = String.fromCharCode(tecla_codigo);
control=(tecla_codigo==46 && (/[.]/).test(obj.value))?false:true
return patron.test(tecla_valor) &&  control;

}

</script>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
<textarea name="textarea" onkeypress="return validar(event)"></textarea>
<textarea name="textarea2" onkeypress="return validar(event)"></textarea>
</form>
</body>
</html>

Última edición por Panino5001; 12/12/2008 a las 11:45
  #11 (permalink)  
Antiguo 12/12/2008, 13:24
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: decimal correcto en input

perfecto.. ahora si funciona como deberia..
muchisimas gracias por tu ayuda..
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #12 (permalink)  
Antiguo 12/12/2008, 13:25
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: decimal correcto en input

Me alegra que te haya servido
  #13 (permalink)  
Antiguo 12/12/2008, 13:26
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: decimal correcto en input

hola
otra preguntica .como hago para que en lugar de qeu sea un decimal con punto sea un decimal con coma?
ejemplo que no sea 3.5 sino 3,5

gracias de nuevo
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #14 (permalink)  
Antiguo 12/12/2008, 13:35
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: decimal correcto en input

Sería así:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>ejemplo</title>
<script>
function validar(e){
obj=e.srcElement || e.target;
tecla_codigo = (document.all) ? e.keyCode : e.which;
//alert(tecla_codigo)
if(tecla_codigo==8)return true;
patron =/[\d,]/;
tecla_valor = String.fromCharCode(tecla_codigo);
control=(tecla_codigo==44 && (/[,]/).test(obj.value))?false:true
return patron.test(tecla_valor) &&  control;

}

</script>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
<textarea name="textarea" onkeypress="return validar(event)"></textarea>
<textarea name="textarea2" onkeypress="return validar(event)"></textarea>
</form>
</body>
</html>
  #15 (permalink)  
Antiguo 12/12/2008, 13:37
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: decimal correcto en input

perfecto..
muchas gracias.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
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 03:15.