首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >输入字段仅接受特定数字

输入字段仅接受特定数字
EN

Stack Overflow用户
提问于 2013-10-01 19:57:57
回答 2查看 1.5K关注 0票数 0

我已经创建了一个表单,现在我想在其中添加一个输入字段,它只接受一个特定的数字,即数字'4‘。这更像是一个垃圾邮件检查,当用户被问到‘1+3的答案是什么?’然后,他/她必须在输入字段中输入数字'4',以便对表单进行处理。如果在输入字段中输入任何其他数字并提交表单,则会触发一个弹出窗口解释错误。

我已经创建了一个小提琴,它只接受数字4,但遗憾的是,它允许接受‘全站仪’。

HTML:

代码语言:javascript
复制
<input id="humancheck" type="text" maxlength="1" name="humancheck" required />

Javascript:

代码语言:javascript
复制
jQuery('#humancheck').keyup(function () { 
    this.value = this.value.replace(/[^4-4\.]/g,'');
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-01 20:01:36

您的正则表达式应该只替换[^4] (任何不是4的字符)。我不知道你为什么还包括-4 (range)和\. (‘“)。性格)。

需要注意的是,对keyup的保护并没有多大帮助。任何人都可以启动webkit检查员,并在那里手动放置3。如果这只是一个有趣的实验,那也很酷:)

票数 2
EN

Stack Overflow用户

发布于 2015-02-28 14:44:30

我知道这篇文章有点发霉,所以我想我可能会给它带来一些最新的东西。

首先,您不应该对事件触发器使用'keyup‘,因为它是处理器密集型的。想象一下,如果您想要将一个数字与多个数字匹配,那么您可以看到“keyup”是如何成为问题的。

使用'blur‘事件是一个更好的触发器,因为它在用户完成在表单字段中输入数字的后检查number值。

如果我正在理解操作,那么为什么在简单的匹配中使用正则表达式呢?相反,这是我编写函数(用于jQuery 1.11.0+)的一种方式。它还进行了额外的检查,以确保条目确实是一个数字。

代码语言:javascript
复制
$('#humancheck').blur( function(){ 
  if (isNaN(this.value)) alert('Not a Number');
  if (this.value != 4) alert('Incorrect Number');
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19124778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档