Quiero poder escribir solo letras en mi campo de entrada, no números. He probado este código pero no funciona:
document.getElementById("input").addEventListener("keypress",function(event){ return (event.code=="KeyA"||event.code=="KeyB"||event.code=="KeyC"||event.code=="KeyD"|| event.code=="KeyE"||event.code=="KeyF"||event.code=="KeyG"||event.code=="KeyH"||event.code=="KeyI"|| event.code=="KeyJ"||event.code=="KeyK"||event.code=="KeyL"||event.code=="KeyM"||event.code=="KeyN"|| event.code=="KeyO"||event.code=="KeyP"||event.code=="KeyQ"||event.code=="KeyR"||event.code=="KeyS"|| event.code=="KeyT"||event.code=="KeyU"||event.code=="KeyV"||event.code=="KeyW"||event.code=="KeyX"|| event.code=="KeyY"||event.code=="KeyZ"); })Por favor, ayúdame.
La forma más sencilla de hacerlo es usar el atributo de patrón HTML
Por ejemplo:
<input type="text" id="country_code" name="country_code" pattern="[A-Za-z]{3}" title="Three letter country code">El uso del método event.preventDefault() puede evitar la ejecución de la tarea predeterminada de eventos. Simplemente verifique si event.key no está en su lista permitida, ejecute event.preventDefault() . En el siguiente código, utilicé event.key.toLowerCase() que hace que se acepten tanto d como D .
document.getElementById("input").addEventListener("keypress",function(event){ if("abcdefghijklmnopqrstuvwxyz".indexOf(event.key.toLowerCase()) < 0) event.preventDefault(); }) <input id="input" type="text">Puedes probar de esta manera
<input type="text" name="name" id="event" onkeypress="return alphabhets(event);" /> function alphabhets(event) { const key = event.keyCode; return /[az]/i.test(event.key); };