Javascript: Permitir sólo números en Javascript

Os dejo una función para evitar que nos introduzcan valores que son sean númericos en un campo HTML. Esta función funciona correctamente en Firefox e Internet Explorer.
Únicamente permitimos el punto para el separador decimal.

<script language=”javascript”>
var nav4 = window.Event ? true : false;
function IsNumber(evt){
// Backspace = 8, Enter = 13, ’0′ = 48, ’9′ = 57, ‘.’ = 46
var key = nav4 ? evt.which : evt.keyCode;
return (key <= 13 || (key >= 48 && key <= 57) || key == 46);
}

</script>

Usamos el evento onKeypress y así­ cada vez que el usuario pulsa una tecla comprobamos que el valor sea númerico.

<input type=”text” name=”telf” value=”" onkeypress=”return IsNumber(event);” >

Leave a comment

10 Comments.

  1. ROBERTO FLORES

    GRACIAS FUNCIONA DE MARAVILLLA

  2. funciona de maravilla thank you

  3. Buenisimo, Gracias!! funciona a la perfeccion! :D

  4. tu chingadera no sirve no mamen este si sirve pendejos

    function Solo_Texto(texto) {

    var charCode
    charCode = texto.keyCode
    status = charCode

    if (charCode > 31 && (charCode 57)) {
    return true
    }
    return false
    }

    function Solo_Numeros(numero){

    var charCode
    charCode = numero.keyCode
    status = charCode

    if (charCode > 31 && (charCode 57)) {
    return false
    }
    return true
    }

  5. buenisimo, me funciono
    gracias!!

  6. Mendoza Matias A.

    Anda casi perfecto en FF ya que me toma la comillas al lado del 0, y en IE 8 directamente no ingresa ningun caracter :S

    podrias decirme porque? o el codigo necesitaria alguna actualizacion?

  7. En IE8 no me funciona!

  8. El codigo funciona a la perfeccion solo hay que corregir unos errores pero funciona en cualquier navegador el codigo corregido es:

    var nav4 = window.Event ? true : false;
    function IsNumber(evt){
    // Backspace = 8, Enter = 13, ‘0′ = 48, ‘9′ = 57, ‘.’ = 46
    var key = nav4 ? evt.which : evt.keyCode;
    return (key = 48 && key <= 57) || key == 46);
    }

  9. Para que no peleen mas, este es el único que funciona en todos los navegadores.

    var nav4 = window.Event ? true : false;
    function IsNumber(e){
    if (window.event){
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla==8 || tecla==127 || tecla==9) return true; //Tecla de retroceso (para poder borrar)
    patron = /\d/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
    }
    else{
    var key = nav4 ? e.which : e.keyCode;
    return (key = 48 && key <= 57));
    }
    }

  10. function validarNumeros(event) {
    var codigo = 0;
    if (event.keyCode == 0) {
    try {
    codigo = event.charCode;
    } catch (ex) { }
    }
    else {
    codigo = event.keyCode;
    }
    if ((codigo != 8 && codigo 57) {
    try {
    event.returnValue = false;
    event.preventDefault();
    } catch (ex) { }
    return false;
    }
    }

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*


Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>