HTML必需属性不适用于google recaptcha

时间:2018-03-15 22:53:49

标签: javascript php recaptcha invisible-recaptcha

当我实施google recaptcha时,

输入字段上的要求属性不起作用。当输入为空时,表示不应提交表单。但是当输入为空时,表单会被提交。我跟着google's guide以最简单的形式实现了它。

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

我想做的是只在输入不为空时才执行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>

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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