Foros del Web » Programando para Internet » Javascript »

Validar un decimal sin dos comas

Estas en el tema de Validar un decimal sin dos comas en el foro de Javascript en Foros del Web. Hola a todos; ¿como puedo validar un decimal? Logro validar que un campo sea numérico, pero con un decimal no logro. Mirando en el foro, ...
  #1 (permalink)  
Antiguo 08/12/2006, 03:17
 
Fecha de Ingreso: febrero-2004
Mensajes: 157
Antigüedad: 20 años, 3 meses
Puntos: 0
Validar un decimal sin dos comas

Hola a todos;

¿como puedo validar un decimal?

Logro validar que un campo sea numérico, pero con un decimal no logro.

Mirando en el foro, encontré esta función que solo permite introducir números y puntos.

Código PHP:
<html>

<
head>
<
script>
    function 
numeros(e) {
        
tecla = (document.all) ? e.keyCode e.which;
        if ((
tecla<48 || tecla>57) && tecla!=46) return false
    
}
</script>
</head>

<body>
<input type="text" onKeyPress="return numeros(event)">
</body>

</html> 
Pero esta función permite introducir más de un punto.

No consigo modificarla para que sólo se pueda introducir un punto.
Y que se pueda introducir tanto un punto o una coma.

Muchas gracias por todo, si consigo adelantos los iré escribiendo.

Saludos a todos.
  #2 (permalink)  
Antiguo 08/12/2006, 03:36
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Validar un decimal sin dos comas

Hola f_murciano

Código PHP:
<html>
<
head>
<
script>
    function 
numeros(e,txt) {
        
tecla = (document.all) ? e.keyCode e.which;
        if ((
tecla<48 || tecla>57) && tecla!=46) return false
        
if (tecla == 46 && txt.indexOf('.')!=-1) return false;
    }
</script>
</head>
<body>
<input type="text" onKeyPress="return numeros(event,this.value)">
</body>
</html> 
Por cierto, deberías añadir algo para que se pueda usar la tecla de retroceso.

Saludos,
  #3 (permalink)  
Antiguo 08/12/2006, 04:02
 
Fecha de Ingreso: febrero-2004
Mensajes: 157
Antigüedad: 20 años, 3 meses
Puntos: 0
Re: Validar un decimal sin dos comas

Gracias JavierB

He puesto un par de cosillas a la función como me comentas, aquí la pongo:
Código PHP:
<html>
<
head>
<
script>
    function 
numeros(e,txt) {
        
tecla = (document.all) ? e.keyCode e.which;
    if (
tecla==8) return true//Tecla de retroceso (para poder borrar)
        
if ((tecla<48 || tecla>57) && tecla!=46 && tecla!=44 ) return false
        
if (tecla == 46 && (txt.indexOf('.')!=-|| txt.indexOf(',')!=-1)) return false;
        if (
tecla == 44 && (txt.indexOf(',')!=-|| txt.indexOf('.')!=-1)) return false;
    }
</script>
</head>
<body>
<input type="text" onKeyPress="return numeros(event,this.value)">
</body>
</html> 
Pero no encuentro una tabla de caracteres que tenga el suprimir y los cursores para añadírselos a la función.

¿Tienes alguna información y completo un poco más la función?

Muchas gracias.
  #4 (permalink)  
Antiguo 08/12/2006, 04:15
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Validar un decimal sin dos comas

Hola de nuevo.

Supongo que habrá alguna tabla, pero yo lo que hago es utilizar este sencillo código (con firefox)

<input type="text" onkeyup="alert(event.which)">

Fijate que he puesto onkeyup, porque con onkeypress las teclas del, y algunas otras, cursor siempre dan cero.

Saludos,
  #5 (permalink)  
Antiguo 11/12/2006, 01:51
 
Fecha de Ingreso: febrero-2004
Mensajes: 157
Antigüedad: 20 años, 3 meses
Puntos: 0
Re: Validar un decimal sin dos comas

Hola,

Muchas gracias por responder JavierB.

Tengo algunos problemillas con las nuevas opciones que pongo en la funcioncita:

Código PHP:
<html>
<
head>
<
script>
    function 
numeros(e,txt) {
        
tecla = (document.all) ? e.keyCode e.which;
            if (
tecla==8) return true//Tecla de retroceso (para poder borrar)
            
if (tecla==35) return true//Tecla Fin
            
if (tecla==36) return true//Tecla Inicio
            
if (tecla==37) return true//Tecla cursor izquierda
            
if (tecla==39) return true//Tecla cursor derecha
            
if (tecla==52) return false//Dólar
            
if (tecla==53) return false//Porcentaje
        
if ((tecla<48 || tecla>57) && tecla!=46 && tecla!=44 ) return false
        
if (tecla == 46 && (txt.indexOf('.')!=-|| txt.indexOf(',')!=-1)) return false;
        if (
tecla == 44 && (txt.indexOf(',')!=-|| txt.indexOf('.')!=-1)) return false;
    }
</script>
</head>
<body>
<input type="text" onKeyPress="return numeros(event,this.value)">
</body>
</html> 
Los nuevos valores que he puesto gracias a los códigos obtenidos con tu código (<input type="text" onkeyup="alert(event.which)">) no funcionan:

Código PHP:
            if (tecla==35) return true//Tecla Fin
            
if (tecla==36) return true//Tecla Inicio
            
if (tecla==37) return true//Tecla cursor izquierda
            
if (tecla==39) return true//Tecla cursor derecha
            
if (tecla==52) return false//Dólar
            
if (tecla==53) return false//Porcentaje 
Con respecto a los carácteres raros sólo son el % y $ los que puedo escribir, tanto en IE como en Firefox.

¿que crees que puede ser?¿por que no me funcionan los cursores y el inicio y fin en Firefox (en IE si funcionan)?

Muchas gracias por todo.

Saludos.
  #6 (permalink)  
Antiguo 20/12/2006, 08:30
Avatar de ikaroraul  
Fecha de Ingreso: octubre-2006
Ubicación: La Paz
Mensajes: 391
Antigüedad: 17 años, 7 meses
Puntos: 16
Re: Validar un decimal sin dos comas

HOlas estube probando este codigo.... y fuinciona...PERO... hay algo malo....
cuando utilizo en "." del teclado numerico... no me funciona :( para nada.. pero si el punto del lado del teclado alphanumerico....
Que cosas tendria q modificar en el script?????
AYuda porfas...
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 12:28.