1

当我实现 google recaptcha 时,输入字段上的Require 属性不起作用。当输入为空时,应该不提交表单。但是当输入为空时,表单会被提交。我按照谷歌的指南以最简单的形式实现了它。

 <?php if (isset($_POST['code']) && ($_POST['code'] == "whatever")) //do stuff?> ?>

我想做的是让recaptcha仅在输入不为空时执行,否则阻止表单提交和recaptcha执行。

<form id="form1" method="post" >
 
  <input name="code" type="text" required>

  <button  data-sitekey="xxx" 
      data-callback='onSubmit' type="submit" class="g-recaptcha" >Let me in</button>
  </form>
</div>
      <script>
       function onSubmit(token) {
      document.getElementById("form1").submit();
       }
     </script>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>

4

2 回答 2

2

查看您链接到的文档,如果 I put 字段为空,您最好摆脱该required属性并在脚本中添加一个检查以不提交表单。

因此 JavaScript 会检查该字段是否为空,然后发出验证警报,或者最适合您的情况。

于 2018-03-15T23:10:24.310 回答
0

它提交的原因是您的 JavaScript 函数直接调用了提交,这绕过了仅 HTML5 的验证。作为“提交”类型的提交按钮将自动为您提交,因此您不需要它。

于 2018-03-16T02:58:16.213 回答