【问题标题】:Google reCaptcha v2 - check captcha is completed before form submissionGoogle reCaptcha v2 - 在提交表单之前检查验证码是否完成
【发布时间】:2015-10-14 23:51:17
【问题描述】:

在提交表单之前检查用户是否实际完成了验证码的最佳做法是什么?

从文档中我可以看到有 2 个回调函数 data-callback 和 data-expired-callback。

计划是在成功完成或到期时将布尔 javascript 变量设置为真/假,然后在提交表单之前检查该变量是否为真。

从用户的角度来看,这将确保用户在提交之前填写验证码。

恶意用户可以覆盖 javascript 变量,但服务器端验证码可以防止这种情况发生。

【问题讨论】:

    标签: javascript html forms recaptcha


    【解决方案1】:

    首先在您的form 中,您必须输入onsubmit="return check()"。这意味着当您提交表单时,在发送数据之前,它将执行名为check() 的函数。如果函数返回false,表单将不会提交。它看起来像这样:

    <form action="page.php" method="POST" name="form" onsubmit="return checkCaptcha ()">
    

    那么你就有了你的功能:

    <script language="javascript">
        function checkCaptcha ()
        {
            var captcha = document.getElementById('captcha ').value;
    
            if (captcha == "" || captcha == " ")
            {
                alert("please fill the captcha ");
                return false;
            }
            else
            if (captcha .length != 7)
            {
             return false 
            } // and so on
            else
            {
                 // if everything is ok you can submit
                return true;
            }
        }
        </script>
    

    【讨论】:

    • 为什么这比回调/javascript变量更受欢迎?
    • 您要求 计划是在成功完成或到期时将布尔 javascript 变量设置为真/假,然后在提交表单之前检查该变量是否为真。 .我的方法正是这样做的,而且它真的很容易使用。我不知道callback
    猜你喜欢
    • 1970-01-01
    • 2016-03-12
    • 2012-07-08
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多