Javascript 提交失败时,同一页面上的多个Recaptcha是否消失?

Javascript 提交失败时,同一页面上的多个Recaptcha是否消失?,javascript,jquery,ajax,asp.net-mvc,forms,Javascript,Jquery,Ajax,Asp.net Mvc,Forms,我在一个页面上有两个ajax表单,它们都是部分视图。两者都有recaptcha,我似乎找不到在表单提交且验证失败后重新加载recaptcha的方法 Recaptcha是显式加载的,我有两个问题,首先,如果我使用: <script src="https://www.google.com/recaptcha/api.js?onload=myCallBack&render=explicit" async defer></script> 表单中的recaptcha如下所

我在一个页面上有两个ajax表单,它们都是部分视图。两者都有recaptcha,我似乎找不到在表单提交且验证失败后重新加载recaptcha的方法

Recaptcha是显式加载的,我有两个问题,首先,如果我使用:

<script src="https://www.google.com/recaptcha/api.js?onload=myCallBack&render=explicit" async defer></script>
表单中的recaptcha如下所示:

<div id="recaptcha1"></div>

我使用的是MVC 5,表单提交的Controller操作如下:

public async System.Threading.Tasks.Task<ActionResult> FormSubmit(contactform model, string whichpage)
    {if (ModelState.IsValid && status)

        {*Updates database/sends email here*

else
        {

            return PartialView("_contactform", model);

        }
public async System.Threading.Tasks.Task FormSubmit(contactform模型,字符串whichpage)
{if(ModelState.IsValid&&status)
{*更新数据库/在此处发送电子邮件*
其他的
{
返回PartialView(“\u contactform”,model);
}

我尝试过多种组合,在不同的位置加载不同的内容,但我找不到一种可以无误运行的组合。当任何一个表单都已提交且验证失败时,我能在各自的表单上同时使用recaptcha的最佳方式是什么?

我在通过ajax提交表单时遇到了类似的问题问题是,当表单返回并调用回调函数时,它希望以两种形式呈现两个ReCaptcha。由于一个ReCaptcha已呈现,另一个ReCaptcha将中断。若要仅以正确的形式呈现ReCaptcha,请添加以下
if
语句,以检查ReCaptcha是否已在受尊重的c中呈现该示例使用jQuery

var myCallBack = function () {
  if($('#recaptcha1').is(':empty')) {
    grecaptcha.render('recaptcha1', {
      'sitekey': 'sitekeyhere', 
      'theme': 'light'
    });
  }

  if($('#recaptcha2').is(':empty')) {
    grecaptcha.render('recaptcha2', {
      'sitekey': 'sitekeyhere', 
      'theme': 'light'
    });
   }
}
您还需要确保两个ReCaptcha占位符元素的格式都符合要求

<form name="form1">
  [...]
  <div id="recaptcha1"></div>
</form>

<form name="form2">
  [...]
  <div id="recaptcha2"></div>
</form>

[...]
[...]
<form name="form1">
  [...]
  <div id="recaptcha1"></div>
</form>

<form name="form2">
  [...]
  <div id="recaptcha2"></div>
</form>