【问题标题】:HTML required attribute doesn't work with google recaptchaHTML 必需属性不适用于 google recaptcha
【发布时间】:2018-03-15 22:53:48
【问题描述】:

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

 <?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>

【问题讨论】:

  • 你能添加一些验证代码吗?

标签: javascript php recaptcha invisible-recaptcha


【解决方案1】:

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

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

【讨论】:

  • 问题是表单只用php提交,我没有为此使用任何JS
  • 在这种情况下,这里有一些针对 reCAPTCHA 的 PHP 特定文档:reCAPTCHA 2.0 & PHP tutorial, Google's PHP reCAPTCHA documentation 只要知道 Google 文档顶部有一条警告,它是面向 v 1.0 的,并且不是支持时间更长。但应该让你朝着正确的方向前进
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多