Underc0de

Programación Web => Front-end => Mensaje iniciado por: Xt3mP en Abril 20, 2012, 02:35:13 AM

Título: [JQuery][BASICO] Permitir solo numeros
Publicado por: Xt3mP en Abril 20, 2012, 02:35:13 AM
A veces por cuestiones de la vida nos vemos en la situación de validar que caracter es ingresado permitiendo sólo así el ingreso de caracteres numéricos. Existen muchas maneras de lograrlo pero en mi caso, lo necesario era que en cuanto el visitante presione una tecla, validarla en tiempo real para solo permitir los caracteres que queremos; en éste caso, numéricos.

Haremos uso del evento keydown tomando como evento el caracter presionado pero antes, por cuestiones de eficacia y porque seguramente necesitamos usarlo en varios input/textarea, le asignaremos una clase de esta manera:

Código (html5) [Seleccionar]
<input class="validar" type="text" name="casilla_1" />
<input class="validar" type="text" name="casilla_2" />


Ahora agregaremos el evento de la siguiente manera:

Código (javascript) [Seleccionar]
$(function(){
    $(".validar").keydown(function(event){
        if(event.keyCode < 48 || event.keyCode > 57){
            return false;
        }
    });
});


Con esto nos bastaría para solo permitir números aunque con IE8 tuve problemas. Y respecto a qué hacemos, pues fácil. Mandamos mediante "event" la tecla pulsada y la comparamos con su "char key code". Los podemos encontrar en http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes.

Hay otras formas de hacer lo mismo, por ejemplo, utilizando isNaN (is not a number). Todo varia dependiendo la experiencia de cada programador aunque sinceramente a esto no le veo mucha ciencia así que espero que haya sido de utilidad aunque sea un poco, ya que estoy seguro que al menos una vez en la vida necesitaremos validar caracteres numéricos dejando de lado PHP, ASP, etc.