【发布时间】:2012-02-15 02:31:56
【问题描述】:
我在这里看到了其他几篇关于将 Recaptcha 与 ASP.net UpdatePanels 一起使用的帖子,但还没有找到解决我问题的答案。
这是我的 ASPX 代码:
<asp:UpdatePanel ID="updRecaptcha" runat="server" UpdateMode="Always">
<ContentTemplate>
<recaptcha:RecaptchaControl ID="btnrecaptcha" runat="server" Theme="clean" PrivateKey"<%$ Resources: General, CaptchaPrivateKey %>" PublicKey="<%$ Resources: General, CaptchaPublicKey %>" />
<asp:Label ID="recaptchaerror" runat="server" style="color: Red;"/>
</ContentTemplate>
</asp:UpdatePanel>
因此,Recaptcha 控件位于使用多个 .Net 验证控件(例如 RequiredFieldValidator)的用户控件中。在允许进程继续之前,我需要验证 Recaptcha 和 ASP.net 控件。
如果任何验证失败(Recaptcha 或 .Net),则 Recaptcha 控件将消失。查看 HTML 源代码,在回发之后控件根本没有加载 - 即使我告诉 UpdatePanel 进行更新。
我无法完全重新加载页面,因为这一切都显示为页面顶部的叠加层,并且后面的页面上还有其他表单字段。
请帮忙!
编辑:
当 Recaptcha 失败时,我从 C# 调用此代码:
ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "InvalidRecaptcha", "alert('Recaptcha Failed');Recaptcha.reload();alert('Recaptcha Reloaded');", true);
两个警报语句都会触发,但 Recaptcha 仍然没有加载。
【问题讨论】:
-
你有现场演示的链接吗?我怀疑回发后没有重新初始化javascript。
-
很遗憾,我无法分享。我在 Google Chrome 的控制台选项卡中看到它显示此错误:无法设置属性“innerHTML”的值。
标签: asp.net updatepanel recaptcha