JavaScript 输入字段必须等于 JavaScript 代码中隐藏的数字

标签 javascript validation

我的联系我们表单中疯狂地收到机器人的垃圾邮件。我已经尝试过,随机安全码,代码必须与您看到的代码匹配。他们绕过了它。我回到谷歌验证码,他们正在绕过它。所以我唯一的想法是创建一个输入字段,他们必须在其中回答问题,并且数字将隐藏在 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

Non-identity / strict inequality (!==)

The non-identity operator returns true if the operands are not equal and/or not of the same type.

当您使用 non-identity / strict inequality (!==) 时运算符,您应该将值转换为数字。

您还可以使用传递的参数从元素中获取值:

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 输入字段必须等于 JavaScript 代码中隐藏的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60024486/

相关文章:

javascript - AngularJS ng-repeat 启用对表列进行排序

javascript - 当使用绑定(bind)进行 eval 时,Nashorn 找不到函数

ios - 如何验证多维 NSArray 结构?

javascript - JQuery 不附加 html

javascript - 如何使用 JavaScript 统一随机化数据

javascript - HTML 代码不起作用

javascript - 删除服务器端验证并进行完整的客户端验证?

android - EditText.setError 不显示错误文本,只显示图标

javascript - 使用 jquery 基于语言的验证

javascript - HTML 表单客户端验证