有没有办法只接受字母而不是数字?如果给出数字,它应该显示验证错误,因为它只需要字母
Posted
技术标签:
【中文标题】有没有办法只接受字母而不是数字?如果给出数字,它应该显示验证错误,因为它只需要字母【英文标题】:Is there a way to accept only alphabets as input and not numbers? If numbers are given it should show a validation error as it takes only alphabets 【发布时间】:2020-02-29 10:28:06 【问题描述】:我正在创建一个表单,我在其中提供某些字段。 现在,一个文本类型的输入字段。
我尝试过验证 " required " 但这不是我要寻找的。如果用户提供一个数字作为输入,它应该验证它只需要字母。
<form action="/action_page.php">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
<input type="submit" value="Submit">
</form>
你能帮我在旅途中如何在文本字段中输入并验证是否给出了数字
【问题讨论】:
阅读developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event 【参考方案1】:您可以使用这样的模式进行验证。
<form action="/action_page.php">
First name: <input type="text" pattern="[A-Za-z]" name="fname"><br>
Last name: <input type="text" pattern="[A-Za-z]" name="lname"><br>
<input type="submit" value="Submit">
</form>
或者验证可以通过 Jquery 来完成。输入字段将不接受除字母以外的任何其他输入。
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
First name <input type="text" pattern="[A-Za-z]" id="fname" name="fname"><br>
Last name <input type="text" pattern="[A-Za-z]" id="lname" name="lname"><br>
<script>
$( document ).ready(function()
$( "#fname" ).keypress(function(e)
var key = e.keyCode;
if (key >= 48 && key <= 57)
e.preventDefault();
);
$( "#lname" ).keypress(function(e)
var key = e.keyCode;
if (key >= 48 && key <= 57)
e.preventDefault();
);
);
</script>
</body>
</html>
【讨论】:
【参考方案2】:使用模式
<form action="/action_page.php">
First name: <input type="text" pattern="[A-Za-z]" name="fname"><br>
Last name: <input type="text" pattern="[A-Za-z]" name="lname"><br>
<input type="submit" value="Submit">
</form>
pattern 属性指定一个正则表达式,在提交表单时检查元素的值。
【讨论】:
谢谢。我实际上在寻找相同但有点不同的东西。就像,我想在输入时显示验证,或者当我们进入下一个字段时,它应该提醒应该只给出字母而不是数字。【参考方案3】:试试下面的 sn-p:
if (!/^([^0-9]*)$/.test($(input).val()))
alert("This only accepts alphabets!");
else
//submit
这个想法是使用正则表达式来验证输入值,然后只是提醒通知客户端。
另一种方法是在按键时立即禁用数字。
$("input").keypress(function (e)
if (!/^([^0-9]*)$/.test(e.key))
return false;
);
【讨论】:
以上是关于有没有办法只接受字母而不是数字?如果给出数字,它应该显示验证错误,因为它只需要字母的主要内容,如果未能解决你的问题,请参考以下文章