【发布时间】:2019-02-25 06:15:29
【问题描述】:
我有一些代码,其中有一些 if/else if 语句来确定 Google 表单关闭的原因。我想将此原因传递给另一个函数,该函数将发送一封电子邮件通知我表单已关闭以及原因。我不知道为什么应该是字符串的原因没有传递给发送电子邮件的函数。
我在这段代码中根本不处理表单。为简单起见,我打开了一个新的独立脚本,未链接到任何 Google 表单或工作表,仅测试这一部分(确定原因并发送电子邮件)。这是代码:
确定表单关闭原因并调用第二个函数发送电子邮件的第一个函数:
function FindReason() {
var Day1Seats = 5;
var Day2Seats = 5;
var Day1Responses = 6;
var Day2Responses = 1;
var FormClose = false;
if(Day1Responses >= Day1Seats) {
var reason = "All seats taken for Day 1";
SendAnEmail(reason);
}
else if(Day2Responses >= Day2Seats) {
var reason = "All seats taken for Day 2";
SendAnEmail(reason);
}
else if(FormClose) {
var reason = "Form close date";
SendAnEmail(reason);
}
}
第二个函数,发送邮件(邮件地址明显是为了隐私改的):
function SendAnEmail(closereason) {
var recipientTO = "name@example.com";
var subject = "This is the subject";
//var closereason = "All seats taken for Day 1";
MailApp.sendEmail({
to: recipientTO,
subject: subject,
htmlBody: (new Date()) + "<br>Your form has been closed because: <br>" + closereason + "<br>End of message."
});
}
当我运行 FindReason() 时,我确实收到了一封电子邮件,但正文没有正确显示原因。这是我收到的电子邮件示例:
2019 年 2 月 24 日星期日 12:26:01 GMT-0800 (PST)
您的表单已关闭,因为:
未定义
消息结束。
我不知道为什么原因显示为未定义。我尝试在 SendAnEmail 函数中设置原因(已被注释掉的行)并且工作正常,但我需要能够更改原因。
编辑:它现在可以工作了。原来“运行”按钮被设置为运行“SendAnEmail”功能而不是“FindReason”功能。感谢所有提供建议的人。
【问题讨论】:
-
if(FormClose = TRUE) {是一个作业。试试if(FormClose) -
谢谢。我解决了这个问题,正如 Dan 在下面所建议的那样,但问题仍然存在。仍显示为未定义。
-
你还没有更新所有的问题代码。
-
我已经更新了问题代码。
-
它现在对我有用。