2017-04-11 72 views
0

请你帮忙看看为什么jQuery代码的一部分,不使用谷歌Apps脚本的Web应用程序的工作中,“#thank_you”不显示和“email_subscribe”不不要滑动。这里是链接到网络应用程序: https://script.google.com/macros/s/AKfycbzwqzFpfaUQ1Bnp6q1eo_rEXK7bn3iJLePUdNjymirHxCgz9UYi/execWeb应用程序与谷歌Apps脚本没有运行jQuery代码

这里是代码:

<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> 

回答

0

形式的提交按钮的默认行为是隐藏形式的元素。所以在提交隐藏的元素之后,而不是显示“Thank You”。为了抑制默认行为,所有你需要做的是从你的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的功能,你不发挥作用的工作。因此,如果您在添加电子邮件功能时遇到问题,则显示并向上滑动的脚本将无法运行。当我试图访问上面的链接,在控制台中得到以下错误:

Uncaught Error: Document 1VY3yA_pvXBFX789RHbDwNQoGYxee4P_g6rkqjE-KpzY is missing (perhaps it was deleted?) at addEmail

希望你回答你的问题!

+0

嗨,杰克,非常感谢。我添加了返回False的行,它起作用。真的非常感谢。 – Din

+0

如果这样你解决了你的问题,不要忘了检查这个答案是正确的! –