将 HTML 输入限制为特定字符类型

我有一个输入,我想将输入限制为仅字母(AZ 或 az)。

仅使用HTML输入元素中的属性,是否可以限制实际输入?


以下是更多详细信息:


<!-- Code snippet I have now -->

<input type="text" pattern="[A-Za-z]">

使用该pattern属性,只会让用户知道他们是否未满足模式标准,对吧?它实际上不会阻止他们输入 5 吗?仅使用 HTML 是否可以阻止用户输入数字(或者更具体地说,只允许他们输入 az)?



如果不可能,您将如何使用 JavaScript 来做到这一点?我看到他们在某个地方有一个onkeypress="someFunction()",他们检查输入字符是否是数字,如果是数字,那么他们会以某种方式阻止它......这是做这种事情的最好方法吗?

HTML:


<!-- Something like that? -->

<input type="text" onkeypress="someFunction()">

JavaScript:


function someFunction() {

    if (event.key < "A" || event.key > "z") {

        // what would I do here?

    }

}


月关宝盒
浏览 134回答 4
4回答

潇潇雨雨

function onlyAlphabet(inputVal) {&nbsp; var patt=/^[a-zA-Z]+$/;&nbsp; if (patt.test(inputVal)) {&nbsp; &nbsp; document.getElementById('text').value = inputVal;&nbsp; } else {&nbsp; &nbsp; var txt = inputVal.slice(0, -1);&nbsp; &nbsp; document.getElementById('text').value = txt;&nbsp; }}<input id="text" type="text" oninput="onlyAlphabet(value)">

临摹微笑

另一种方法是使用 keydown 事件(不推荐使用 keypress)。function inputPattern(e) {&nbsp; var test = e.key.search(/[a-zA-Z]/);&nbsp; if(test < 0) e.preventDefault();}<input type="text" onkeydown='inputPattern(event)'>

泛舟湖上清波郎朗

另一种方法是使用 keydown 事件(不推荐使用 keypress)。function inputPattern(e) {&nbsp; var test = e.key.search(/[a-zA-Z]/);&nbsp; if(test < 0) e.preventDefault();}<input type="text" onkeydown='inputPattern(event)'>

千巷猫影

我不知道如何检查是否按下了某个键,但如果它只是一个输入,那么您可以这样做吗?<input&nbsp;type="text"&nbsp;pattern="[A-Za-z]"&nbsp;onkeypress="someFunction()">
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript