javascript no permitir comas ni puntos

Iniciado por OssoH, 29 Junio 2010, 01:50 AM

0 Miembros y 1 Visitante están viendo este tema.

OssoH

Me gustaría tener un campo númerico entero de forma que cualquier cosa que tecleemos dentro de él que no sea un entero no se nos permita mostrarlo ( acentos, caracteres alfanuméricos, simbolo del punto, simbolo de la coma ).


De momento sólo lo he conseguido para la coma.
onKeyUp="javascript:this.value = this.value.replace(/,/,'.'); 

¿Alguien sabe como se hace?
Gracias

winroot

http://www.todoexpertos.com/categorias/tecnologia-e-internet/desarrollo-de-sitios-web/javascript/respuestas/93541/validacion-de-datos-numericos-en-js

En javascript hay una función que te dice si una variable es o no un número. Esta es isNaN()

Ejemplo:

// El objeto introducido es el campo del formulario a comprobar:
// document.nombre_del_formulario.nombre_del_campo
function comprueba(obj){
if (isNaN(obj.value)){
alert("¡Debes introducir un número!");
return false;
}
else {
return true;
}

esto lo agrego yo :
isNaN, indica si una expresión es de tipo numérica o no.
lo que podrías hacer para sacar solo los números introducidos es un bucle for, que recorra todos los caracteres introducidos y comprueve 1 por 1 si son  número o no.
lo que es número lo va agregando a una  variable y listo!
no tengo ganas de  codear
:xD
pero, usa la función lengt para sacar la longitud de la cadena, ese será el tope del  for.
recuerda que la primer letra es la letra  0, ya que una cadena es como un array.
saludos
Mi blog sobre programación y seguridad informática:
http://win-root.blogspot.com

OssoH

Pero yo lo quiero para conforme vaya escrbiendo en el edit.

tengo ya este código pero me admite el punto decimal y no lo quiero.  No quiero tener la posibilidad de introducir decimales.

<input type="text" onchange="this.value=this.value.replace(/\.$/, '')"  onKeyUp="if (isNaN(this.value)) this.value=this.value.replace(/[^0-9.]/g,'')" />



OssoH

solucion

   <input type="text" value="" onkeyup="javascript:this.value = this.value.replace(/[.,,]/, ''); if (isNaN(this.value)) this.value = 0;" />

nicolas_cof

OssoH, te dejo otra solucion...

<html>
<head>
<script type="text/javascript">
function soloNumeros( evt )
{
    if ( window.event ) { // IE
        keyNum = evt.keyCode;
    } else {
        keyNum = evt.which;
    }

    if ( keyNum >= 48 && keyNum <= 57 ) {
        return true;
    } else {
        return false;
    }
}
</script>
</head>
<body>
<input type="text" onKeyPress="return soloNumeros( event )" />
</body>
</html>


Salu10.

OssoH