Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: OssoH en 29 Junio 2010, 01:50 am



Título: javascript no permitir comas ni puntos
Publicado por: OssoH en 29 Junio 2010, 01:50 am
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


Título: Re: javascript no permitir comas ni puntos
Publicado por: winroot en 29 Junio 2010, 02:03 am
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
 


Título: Re: javascript no permitir comas ni puntos
Publicado por: OssoH en 29 Junio 2010, 09:32 am
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,'')" />




Título: Re: javascript no permitir comas ni puntos
Publicado por: OssoH en 29 Junio 2010, 09:58 am
solucion

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


Título: Re: javascript no permitir comas ni puntos
Publicado por: nicolas_cof en 29 Junio 2010, 11:02 am
OssoH, te dejo otra solucion...

Código:
<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.


Título: Re: javascript no permitir comas ni puntos
Publicado por: OssoH en 29 Junio 2010, 11:09 am
Gracias!! :)
Me la apunto en mi bloc