代码之家  ›  专栏  ›  技术社区  ›  Computer

grecaptcha。render不是asp net updatepanel的函数

  •  1
  • Computer  · 技术社区  · 8 年前

    不知道为什么会这样。回发时,验证码消失,因此在阅读了一些文章后,我有下面的代码来解决问题(回发后仍显示验证码)

    <script src="https://www.google.com/recaptcha/api.js?onload=**pageLoad**&render=explicit"></script>
    
    <asp:ScriptManager runat="server" ID="sm1"></asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
            <ContentTemplate>
                <div class="col-xs-12">
                    <div class="g-recaptcha" data-sitekey="XXXXXXXX"></div>
    
    <script language="javascript" type="text/javascript">
        function pageLoad() {
            $('.g-recaptcha').each(function (index, obj) {
                 grecaptcha.render(obj, { 'sitekey': 'XXXXXXXX' });
            });
        }
    </script>
    

    然而,在控制台窗口(Chrome)中,我看到了错误

    Uncaught TypeError: grecaptcha.render is not a function
        at HTMLDivElement.<anonymous> ((index):468)
        at Function.each (jquery.min.js:2)
        at n.fn.init.each (jquery.min.js:2)
        at pageLoad ((index):467)
    

    因此将pageLoad更改为onloadCallback

    <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit"></script>
    

    这解决了错误,但当我点击一个按钮时,验证码消失了(表单上的验证问题)?

    遵循了这些文章中的步骤,但不确定我错在哪里? noCAPTCHA reCAPTCHA disappearing in UpdatePanel Recaptcha in Updatepanel disappears during PostBack

    0 回复  |  直到 8 年前