重置重新验证码联系人表7

时间:2016-02-26 作者:roshan

我在一个页面中有多个表单(联系表单7),需要在通过ajax提交表单后重置recaptcha。我检查了recaptcha API,它grecaptcha.reset(); 但它只重置页面中的第一个recaptcha。

以下是根据recaptcha API针对特定recaptcha的方法:

grecaptcha.reset(
    opt_widget_id
)
这里的问题是,我无法获得recaptcha的实例(opt\\u widget\\u id),因为它是由联系人表单7创建的。

如何在具有多个表单的页面中获取opt\\u widget\\u id,以便重置特定的recaptcha。

2 个回复
SO网友:roshan

由于recaptcha是由contact form 7创建的,没有将呈现的recaptcha分配给变量,因此无法使用grecaptcha。重置(opt\\u widget\\u id)。以下是is所做的:

$(".wpcf7-submit").click(function(event) {
var currentForm=$(this).closest("form");
$( document ).ajaxComplete(function(event,request, settings) {
    var responseObj=JSON.parse(request.responseText);
    if(responseObj.mailSent==true){
        //reset recaptcha
        var recaptchaIFrame=currentForm.find("iframe").eq(0);
        var recaptchaIFrameSrc=recaptchaIFrame.attr("src");
        recaptchaIFrame.attr("src",recaptchaIFrameSrc);
    }
   });
});
我已经清除了iframe源并重新分配了相同的src,以便它在提交后重新加载recaptcha。

我希望这对某人有帮助!

SO网友:Maulik Vora

我通过在联系人表单的“附加设置”中添加以下代码来完成此操作。

on_sent_ok: "grecaptcha.reset()"
希望这对其他人有帮助

相关推荐

使用WPForms提交表单时触发操作

我的一位客户使用WPForms插件创建前端表单。提交表单时,条目进入de数据库(在单独的表wp\\u wpform\\u entries或类似的表中,全部由插件处理)。但他们也希望以JSON格式将所有数据发布到另一个网站。是否有办法知道表单已提交,或者使用add_filter(\'wp_insert_post)?