你能否帮助找出为什么部分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>
答案 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
希望能回答你的问题!