Ben*_*min 2 vb.net asp.net updatepanel recaptcha
我正在用VB.Net将noCAPTCHA reCAPTCHA实现到现有的表单中.它位于UpdatePanel中,并使用服务器端验证来验证用户是否已完成CAPTCHA(请参阅ASP.NET服务器端的验证回收2(无CAPTCHA reCAPTCHA))
如果用户未能通过CAPTCHA或任何其他经过验证的字段,则由于回发而无法重新加载CAPTCHA.如何解决这个问题,以便在回发后CAPTCHA不会消失?
我的CAPTCHA代码:
<div id="captcha" class="g-recaptcha" runat="server" data-sitekey="MySiteKey"></div>
Run Code Online (Sandbox Code Playgroud)
api.js放在Site.Master头中.
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
Run Code Online (Sandbox Code Playgroud)
扩大.
我尝试过一种解决方案但最终失败了.我补充道
<div id="captcha" class="g-recaptcha" runat="server" data-sitekey="MySiteKey"></div>
Run Code Online (Sandbox Code Playgroud)
到我的MasterPage的主体并将其扔在UpdatePanel中,给它一个id,等等.
<asp:UpdatePanel UpdateMode="Conditional" runat="server" ID="noCaptcha">
<ContentTemplate>
<asp:ScriptManager runat="server"></asp:ScriptManager>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
然后我在Site Master的代码隐藏中创建了一个函数,如下所示:
Public Sub TriggerCaptchaReload()
noCaptcha.Update()
End Sub
Run Code Online (Sandbox Code Playgroud)
当用户尝试验证并提交表单时
如果他们失败了,我试图让更新面板刷新
CType(Me.Page.Master, MasterPage).TriggerCaptchaReload()
Run Code Online (Sandbox Code Playgroud)
它位于后面的控制代码上.
这没用.也许有一个潜在的解决方案可以找到吗?
Ben*_*min 12
为了解决这个问题,我做了以下事情:
我的CAPTCHA代码更改为以下div:
<div id="recaptcha" class="recaptcha"></div>
Run Code Online (Sandbox Code Playgroud)
然后,我通过将api链接更改为以下内容并将其放在上面的div下面,继续在reCAPTCHA上实现显式渲染.
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit"
async defer>
</script>
Run Code Online (Sandbox Code Playgroud)
在我包括的标题中
<script type="text/javascript">
var onloadCallback = function () {
grecaptcha.render('recaptcha', {
'sitekey': 'MySiteKey'
});
};
</script>
Run Code Online (Sandbox Code Playgroud)
在CAPTCHA失败的代码中,我重新加载了CAPTCHA
ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "loadCaptcha", "grecaptcha.render('recaptcha', {'sitekey': 'MySiteKey' });", True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5797 次 |
| 最近记录: |