【问题标题】:After grecaptcha.execute(), form.submit not working on ASP.Net MVC 5 form在 grecaptcha.execute() 之后,form.submit 在 ASP.Net MVC 5 表单上不起作用
【发布时间】:2020-10-26 19:57:07
【问题描述】:

有问题的表格是一个简单的表格,上面有 reCaptcha v2。单击提交按钮后,Google 会使用 reCaptcha 向用户(我)发起挑战。每次 Google 验证我是人类时,都会调用 onSubmit,正确序列化表单,但 form.submit() 不会调用服务器上的 ASP.Net MVC 控制器。当 Google reCaptcha 被删除时,控制器被调用就好了,所以我认为这与 ASP.Net 代码没有任何关系。

JavaScript 不是我的强项,所以我假设在尝试调用提交时犯了一个愚蠢的错误。我这里有什么问题?

    <script>
        var onSubmit = function (token) {
            var form = $("form"); // $("#feedbackForm");
            console.log(form.serialize());
            form.submit();
        }

        var onGrecaptchaError = function (token) {
            grecaptcha.reset();
        }

        var onloadCallback = function() {
            grecaptcha.render('submit', {
                'sitekey' : '@reCaptchaPublic',
                'callback': onSubmit,
                'error-callback': onGrecaptchaError,
                'size': 'invisible'
            });
        };
    </script>

    <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>

和剃须刀形式代码:

@using (Html.BeginForm("Email", "Home", FormMethod.Post, new { id = "feedbackForm" }))
{
    @* [SNIP] *@
    <div class="formfield clear">
        <button id="submit" class="btnSubmit">Send To Leadership</button>
    </div>
}

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-5 recaptcha invisible-recaptcha


    【解决方案1】:

    经过大量搜索,我终于发现你不能给提交按钮一个提交的id,这就是问题!

    【讨论】:

      猜你喜欢
      • 2018-10-16
      • 2023-03-08
      • 2014-01-26
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2016-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多