Foros del Web » Programando para Internet » Javascript »

campo de texto solo para numeros enteros o decimales.

Estas en el tema de campo de texto solo para numeros enteros o decimales. en el foro de Javascript en Foros del Web. function decimal(){ var key=window.event.keyCode;//codigo de tecla. if ((key < 48 || key > 57) && key!=46 && key!=44 && key!=45) {//si no es numero window.event.keyCode=0;//anula ...
  #1 (permalink)  
Antiguo 17/07/2005, 14:03
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
campo de texto solo para numeros enteros o decimales.

function decimal(){
var key=window.event.keyCode;//codigo de tecla.
if ((key < 48 || key > 57) && key!=46 && key!=44 && key!=45)
{//si no es numero
window.event.keyCode=0;//anula la entrada de texto.



hola tengo esta funcion en javascript para evitar la entrada de texto en campos de formulario. la idea es que solo se pueda ingresar numeros enteros o decimales... pero le encontre un error, como los decimales se puede ingresar comas o puntos.. se puede ingresar mas de una coma o mas de un punto y alli me saca error.. porque si hago un numero asi: 55....4 esta mal entonces mi pregunta es la siguiente

segun el codigo que puse arriba. como lo puedo modificar para qeu solo me deje ingresar numeros y solo una coma o solo un punto... espero me puedan colaborar gracias.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #2 (permalink)  
Antiguo 18/07/2005, 00:33
Avatar de parentesys  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 235
Antigüedad: 20 años, 6 meses
Puntos: 0
//declara dos variables globales coma y punto y las pones valor false
var coma;
var punto;

coma=false;
punto=false;

//dentro de la función pon...

if key == ValorDeComa {
if coma==false {
coma=true;
} else {
alert('Ya ha escrito una coma');
return false;
}
}

if key == ValorDelPunto {
if punto==false {
punto=true;
} else {
alert('Ya ha escrito un punto');
return false;
}
}


Espero que te funcione , sólo tienes que sustituir ValorDeComa y ValorDelPunto por sus valores reales.

Saludos
__________________
Administrador de :
givemefun.net
givemefun.org
  #3 (permalink)  
Antiguo 18/07/2005, 06:06
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
ok te agradezco muchisimo,
alguein sabe sus numeros correspondientes?
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #4 (permalink)  
Antiguo 20/07/2005, 17:41
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
alguien sabe?
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #5 (permalink)  
Antiguo 20/07/2005, 17:53
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
gracias, a la larga no me funciono, la puse asi; sabes porqeu no funciona?

function decimal(){
var key=window.event.keyCode;//codigo de tecla.
var coma;
var punto;
coma=false;
punto=false;
if ((key < 48 || key > 57) && key!=46 && key!=44)
{//si no es numero
window.event.keyCode=0;//anula la entrada de texto.
}

if (key == 44) {
if (coma==false) {
coma=true;
} else {
alert('Ya ha escrito una coma');
return false;
}
}

if (key == 46)
{
if (punto==false)
{ punto=true;}
else
{
alert('Ya ha escrito un punto');
return false;
}

}


}
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #6 (permalink)  
Antiguo 20/07/2005, 23:43
Avatar de parentesys  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 235
Antigüedad: 20 años, 6 meses
Puntos: 0
no te funciona, pero qué error te da?
__________________
Administrador de :
givemefun.net
givemefun.org
  #7 (permalink)  
Antiguo 21/07/2005, 00:57
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
Esto:
var coma;
var punto;
coma=false;
punto=false;

Lo tienes que poner fuera de la función ya que si no siempre que ejecute el script leerá que coma y punto son false y por tanto te dejará ponerlos.

Pon lo de arriba justo encima del function decimal(){

Dime si te va!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #8 (permalink)  
Antiguo 21/07/2005, 01:05
Avatar de parentesys  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 235
Antigüedad: 20 años, 6 meses
Puntos: 0
como te dije en mi primer post...

//declara dos variables globales coma y punto y las pones valor false
var coma;
var punto;

coma=false;
punto=false;


es decir, que esas dos variables no las metas dentro de ninguna función, por eso se llaman globales...



saludos
__________________
Administrador de :
givemefun.net
givemefun.org
  #9 (permalink)  
Antiguo 21/07/2005, 01:13
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
En cualquier caso existe un problema no contemplado y es que la persona borre el punto después de ponerlo. En ese caso este script no dejaría volver a ponerlo. Además permitiría poner un punto y una coma. Esto último es fácil de evitar poniendo sólo una variable global, pero lo primero se me antoja un poco más dificil.

__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #10 (permalink)  
Antiguo 21/07/2005, 06:37
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
mmmm veo, y como podria solucionar eso qeu dices karlankas.. la verdad soy pesimo en javascript me puedes dar una ayuda?
gracias .
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #11 (permalink)  
Antiguo 21/07/2005, 18:14
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
bueno ya solucione una parte, por ahora solo me interesa que metan comas en el campo de texto los puntos no me importan.. ahora el problema es el que comentan arriba que cuando se escribe una coma y se borra ya luego no se puede volver a colocar, alquien sabe como solucionar esto? el codigo lo tengo asi:

// funcion solo numeros decimales campo de formulario
var coma;
coma=false;

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;
}
}
}
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #12 (permalink)  
Antiguo 23/07/2005, 20:08
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 3 meses
Puntos: 4
alguien sabe?
__________________
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 02:26.