使用Google Apps脚本的Web应用程序未运行jQuery代码

时间:2017-04-11 10:40:20

标签: jquery google-apps-script

你能否帮助找出为什么部分jQuery代码在使用Google Apps脚本的Web应用程序中不起作用,“#thank_you”没有显示,“email_subscribe”没有滑动。这是Web应用程序的链接: https://script.google.com/macros/s/AKfycbzwqzFpfaUQ1Bnp6q1eo_rEXK7bn3iJLePUdNjymirHxCgz9UYi/exec

以下是代码:

<div>
    <form id="email_subscribe">
        <input type="email" name="email" id="email" placeholder="Enter your email">
        <input type="submit" value="Subscribe">
    </form>
    <span id="thank_you" hidden="true">Thank you!</span>
</div>
<?!= HtmlService.createHtmlOutputFromFile('CSS').getContent(); ?>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
    </script>
    <script>
        $(document).ready(function() {
            $("#email_subscribe").submit(function() {
                google.script.run.withSuccessHandler(function(ret) {
                    $("#thank_you").show("slow");
                    $("#email_subscribe").slideUp();
                    console.log(ret);
                }).addEmail(this); 
            });
        });
    </script>

1 个答案:

答案 0 :(得分:0)

表单提交按钮的默认行为是隐藏表单的元素。因此,在提交隐藏的元素而不是“谢谢”出现之后。要禁止默认行为,您需要做的就是从jQuery返回false,如下所示:

 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
    </script>
    <script>
        $(document).ready(function() {
            $("#email_subscribe").submit(function() {
                google.script.run.withSuccessHandler(function(ret) {
                    $("#thank_you").show("slow");
                    $("#email_subscribe").slideUp();
                    console.log(ret);
                }).addEmail(this); 
                return false; 
            });
        });
    </script>

您运行不正常工作的另一个原因可能是,因为您正在使用successHandler运行该函数。因此,如果添加电子邮件功能失败,则无法运行要显示和向上滑动的脚本。当我尝试访问上面的链接时,在控制台中出现以下错误:

  

未捕获错误:文档1VY3yA_pvXBFX789RHbDwNQoGYxee4P_g6rkqjE-KpzY丢失(可能已删除?)    在addEmail

希望能回答你的问题!