Validar campo de texto para capturar letras con javascript

Validar un campo de texto para capturar letras se puede lograr mediante el uso del objeto event y el evento onkeydown (Este sucede cuando se pulsa una tecla).

Código:
<script type="text/javascript">
    function prueba(e){
        tecla = e.keyCode || e.which;
        if(tecla>64 && tecla<91){
            alert("Has pulsado una letra ");
        }
    }
</script>
 
<input onkeydown="prueba(event)" type="text">
Demostración :

   <--- Si presionas una letra te sale un mensaje

En este caso cada vez que pulsamos una tecla en el campo de texto se activa automaticamente la función prueba( ) y con el objeto event de argumento.
Ahora dentro de la función prueba( ) se utiliza la propiedad keycode que es el código interno de la tecla pulsada (en el caso de Firefox se usa which por eso se ponen las dos opciones "e.keyCode || e.which") . Ahora cada tecla tiene un código interno pero en este caso sólo queremos aceptar letras desde la 'a' que es 65 hasta la 'z' que es 90.


¿ La letra ñ ?
El código anterior no toma en cuenta la letra ñ ya que su código interno es 192 ,Sin embargo podríamos modificar el condicional de la fúncion prueba quedando el código de la siguiente forma.


Código:
<script type="text/javascript">
    function prueba(e){
        tecla = e.keyCode || e.which;
        if((tecla>64 && tecla<91)||tecla==192){
            alert("Has pulsado una letra ");
        }
    }
</script>
 
<input onkeydown="prueba(event)" type="text">
Demostración :
   <--- En este caso la tecla ñ es considera como letra

Puede ver todos los Keycode en la siguiente tabla mostrada aquí  <------




2 comentarios:

  1. Muchas Gracias me sirvio muchisimo

    ResponderEliminar
  2. Hola, cuando presionas un numero te sale el mensaje de que solo se permiten letras, ok correcto, pero el numero se queda escrito en el text uncluso si escribo Ronald4 al escribir el 4 me sale el mensaje pero aun asi lo deja en el textbox como puedo hacer para que se borre el caracter que ingrese que no es letra?

    ResponderEliminar