一个ASP.Net页面中使用多个reCAPTCHA验证码

6

在一个表单中添加多个reCAPTCHA是可能的吗?我尝试过这样做,甚至为多个reCAPTCHA分配了不同的ID,但是当我在浏览器中加载页面时,只显示其中一个。

这是设计上的问题吗?我需要两个reCAPTCHA,因为一个是用于登录,另一个是用于注册表单,它们将在同一页上显示。

谢谢! WT


1
您可以使用一个表单来实现登录和注册。 - Brian
6个回答

3

每个页面只支持一个验证码。您可以使用AJAX在表单加载后加载验证码。

这可能会有所帮助


1
谢谢Shoban提醒我。这真的救了我的一天。我的页面中有两个不同的更新面板中的验证码图像,即同一页上的两个验证码。有趣的是,一个更新面板中的验证码在提交按钮时会被刷新,但另一个验证码在按钮单击后没有更改。所以我做的是在EndRequest上调用refreshcaptcha函数,它解决了问题。 - user1254053

1
我最初被这个帖子引导,认为没有简单的答案,但是在深入研究了Recaptcha ajax库之后,我可以告诉你这不是真的!简而言之,工作的jsfiddle:http://jsfiddle.net/Vanit/Qu6kn/ 可以覆盖Recaptcha回调函数,以便对挑战进行任何操作。甚至不需要代理div,因为使用重写时DOM代码不会执行。每当您想再次触发回调时,请调用Recaptcha.reload()。
function doSomething(challenge){
    $(':input[name=recaptcha_challenge_field]').val(challenge);
    $('img.recaptcha').attr('src', '//www.google.com/recaptcha/api/image?c='+challenge);
}

//Called on Recaptcha.reload()
Recaptcha.finish_reload = function(challenge,b,c){
    doSomething(challenge);
}

//Called on page load
Recaptcha.challenge_callback = function(){
    doSomething(RecaptchaState.challenge)
}

Recaptcha.create("YOUR_PUBLIC_KEY");

1

1

0

0

验证码包含一个img元素#recaptcha_challenge_image,所以在你将reCAPTCHA设置在一个名为“regCaptch”的div中之后,获取该img的src属性,将你的另外一个验证码div的HTML设置为旧的HTML,然后将#recaptcha_challenge_image的src设置为你获取到的src。以下是一个可行的示例:

    var reCaptcha_src = $('#recaptcha_challenge_image').attr('src');
    $('#texo').html($('#regCaptch').html());
    $('#recaptcha_challenge_image').attr('src',reCaptcha_src);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接