[英]How do I allow only character input (a-z,A-Z) in my input field in javascript?
I want to be able to type only alphabets in my input field, not numbers.我希望能够在我的输入字段中只输入字母,而不是数字。 I've tried this code but it doesn't work:
我试过这段代码,但它不起作用:
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");
})
Please help me.请帮我。
Simplest way to do that is to use HTML pattern Attribute最简单的方法是使用HTML 模式属性
For example:例如:
<input type="text" id="country_code" name="country_code"
pattern="[A-Za-z]{3}" title="Three letter country code">
Using event.preventDefault()
method can prevent running default task of events.使用
event.preventDefault()
方法可以防止运行事件的默认任务。 Just check if event.key
is not in your allowed list, run event.preventDefault()
.只需检查
event.key
是否不在您的允许列表中,运行event.preventDefault()
。 In following code I used event.key.toLowerCase()
that cause accepting both d
and D
.在下面的代码中,我使用了
event.key.toLowerCase()
导致接受d
和D
。
document.getElementById("input").addEventListener("keypress",function(event){ if("abcdefghijklmnopqrstuvwxyz".indexOf(event.key.toLowerCase()) < 0) event.preventDefault(); })
<input id="input" type="text">
You can try this way你可以试试这个方法
<input type="text" name="name" id="event" onkeypress="return alphabhets(event);" />
function alphabhets(event) {
const key = event.keyCode;
return /[a-z]/i.test(event.key);
};
Like @Ali Demirci said, you can use the pattern
attribute.就像@Ali Demirci所说,您可以使用
pattern
属性。 Alternatively you can give a message while the user is typing.或者,您可以在用户键入时发送消息。
For the record: client side form checking is never sufficient if the values should also be processed server side.记录一下:如果值也应该在服务器端处理,那么客户端的表单检查是不够的。 In that case, the server side processing should always include a (re)check of the values.
在这种情况下,服务器端处理应始终包括对值的(重新)检查。
document.addEventListener(`keyup`, handle); function handle(evt) { if (evt.target.id="demo") { const isOk = /^[az]{0,}$/gi.test(evt.target.value); evt.target.parentNode.querySelector(`span`).textContent =?isOk: `Only letters (az or AZ) are allowed`; ``; } }
.warn { color: red; }
<div><input type="text" id="demo"> <span class="warn"></span></div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.