我已经创建了一个表单,现在我想在其中添加一个输入字段,它只接受一个特定的数字,即数字'4‘。这更像是一个垃圾邮件检查,当用户被问到‘1+3的答案是什么?’然后,他/她必须在输入字段中输入数字'4',以便对表单进行处理。如果在输入字段中输入任何其他数字并提交表单,则会触发一个弹出窗口解释错误。
我已经创建了一个小提琴,它只接受数字4,但遗憾的是,它允许接受‘全站仪’。
HTML:
<input id="humancheck" type="text" maxlength="1" name="humancheck" required />Javascript:
jQuery('#humancheck').keyup(function () {
this.value = this.value.replace(/[^4-4\.]/g,'');
});发布于 2013-10-01 20:01:36
您的正则表达式应该只替换[^4] (任何不是4的字符)。我不知道你为什么还包括-4 (range)和\. (‘“)。性格)。
需要注意的是,对keyup的保护并没有多大帮助。任何人都可以启动webkit检查员,并在那里手动放置3。如果这只是一个有趣的实验,那也很酷:)
发布于 2015-02-28 14:44:30
我知道这篇文章有点发霉,所以我想我可能会给它带来一些最新的东西。
首先,您不应该对事件触发器使用'keyup‘,因为它是处理器密集型的。想象一下,如果您想要将一个数字与多个数字匹配,那么您可以看到“keyup”是如何成为问题的。
使用'blur‘事件是一个更好的触发器,因为它在用户完成在表单字段中输入数字的后检查number值。
如果我正在理解操作,那么为什么在简单的匹配中使用正则表达式呢?相反,这是我编写函数(用于jQuery 1.11.0+)的一种方式。它还进行了额外的检查,以确保条目确实是一个数字。
$('#humancheck').blur( function(){
if (isNaN(this.value)) alert('Not a Number');
if (this.value != 4) alert('Incorrect Number');
});https://stackoverflow.com/questions/19124778
复制相似问题