javascript - JavaScript 输入字段必须等于隐藏在 JavaScript 代码中的数字
问题描述
在我的联系我们表格中,我被机器人疯狂地发送垃圾邮件。我试过了,随机的安全码,码必须和你看到的码一致。他们绕过它。我回到谷歌recaptcha,他们正在绕过它。所以我唯一的另一个想法是创建一个他们必须回答问题的输入字段,并且数字将隐藏在 JS 脚本中。如果数字正确,他们将能够提交表格,如果不正确,他们将无法提交。问题是,JS 不是我的强项。有人可以帮我创建一种让JS检查输入字段是否等于10的方法吗?先感谢您。
<script language='javascript' type='text/javascript'>
function check(input) {
if (squest !== 10) {
input.setCustomValidity('Answer is incorrect.');
} else {
// input is valid -- reset the error message
input.setCustomValidity('');
}
}
</script>
<input name="squest" required="required" type="text" id="squest" oninput="check(this)" />
<input type="submit" value="Submit" class="viewbtn" id="btn" name="submit">
解决方案
squest
指的是元素id="squest"
本身,你应该从中获取value
。
如果操作数不相等和/或类型不同,则非恒等运算符返回true 。
当您使用非身份/严格不等式 (!==)运算符时,您应该将值转换为数字。
您也可以使用传递的参数从元素中获取值:
if (Number(input.value) !== 10) {
<script language='javascript' type='text/javascript'>
function check(input) {
if (Number(input.value) !== 10) {
input.setCustomValidity('Answer is incorrect.');
} else {
// input is valid -- reset the error message
input.setCustomValidity('');
}
}
</script>
<form>
<input name="squest" required="required" type="text" id="squest" oninput="check(this)" />
<input type="submit" value="Submit" class="viewbtn" id="btn" name="submit">
</form>
推荐阅读
- javascript - React 和 Redux:控制台不显示错误
- c - 如何在 Windows 10 上打开 Glade 界面设计器?
- abp - 测试 AppService:System.ObjectDisposedException
- c# - ReactiveUI ObservableAsProperty 未在 UI 中通知
- java - 基于 Java 的数据库中的地理空间查询
- sql - 如何从 SQL 中的 varchar 列中获取单个字符?
- node.js - 节点检测 child_process 等待从标准输入读取
- php - Android App 正在通过 Webview URL 加载视图,但未加载 URL 在后台的音频
- html - 响应式网页设计 - 元素之间的差距
- javascript - CodeMirror:从按钮中折叠全部或展开全部?