【问题标题】:Submit only works on second click提交仅适用于第二次点击
【发布时间】:2019-11-11 12:19:27
【问题描述】:

我有一个通过 Google reCaptcha 进行验证的表单。但现在我必须点击两次提交按钮。我找不到原因。

我的表单是这样构建的(Smarty):

<form method="post" id="form">
   <input type="hidden" name="action" value="misdaden">
     <table>
        {foreach from=$misdaden item=item}
           <tr>
                <td class="coll">{$item['id']}</td>
                <td class="coll">{$item['name']}</td>
                <td class="coll">{$item['minmoney']}</td>
                <td class="coll">{$item['maxmoney']}</td>
                <td class="coll">{$item['difficulty']}</td>
                <td class="coll">{$item['percentage']}%</td>
                <td class="coll"><input type="radio" style="width:20px;" name="value" value={$item['id']} /></td>
           </tr>
        {/foreach}
    </table>
    <input type="submit" value="Misdaad plegen!" name="submit" class="submit" />
    <!--input class="button good large" name="submit" type="submit" value="Pleeg misdaad!"-->
</form>

我的脚本是(JQuery):

$('#form').submit(function(e) {
    e.preventDefault();
    grecaptcha.ready(function() {
    grecaptcha.execute('6LesiMAUAAAAAAJ8G94kKbXxJj62_U2ajn-dzJzF', {action:'misdaden'})
              .then(function(token) {
                    $('#form').prepend('<input type="hidden" name="token" value="'+ token +'">');
                    $('#form').unbind('submit').submit();
                });
    });
});

我可能遗漏了一些明显的东西,但是什么?

【问题讨论】:

    标签: php jquery forms recaptcha


    【解决方案1】:

    在 jquery 脚本中,您将在执行验证码时取消绑定表单的提交事件处理程序,这不是必需的。 只需提交表格,见下文

    $(document).ready(function() {
        grecaptcha.ready(function() {
        grecaptcha.execute('6LesiMAUAAAAAAJ8G94kKbXxJj62_U2ajn-dzJzF', {action:'misdaden'})
                  .then(function(token) {
                        $('#form').prepend('<input type="hidden" name="token" value="'+ token +'">');
                        $('#form').submit();
                    });
        });
    });
    

    【讨论】:

    • 如果我这样做,按钮将不再提交。脚本是从这个站点复制的,解绑原因的解释在那里:code.tutsplus.com/tutorials/…
    • 我只是看到一些例子,发现你应该在脚本中进行更改。查看我的更新答案
    猜你喜欢
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    • 2018-05-19
    • 1970-01-01
    相关资源
    最近更新 更多