我制作了一个包含许多字段的谷歌表单。我已经设置了一个触发器来将表单值发送到特定的(也将其保存在谷歌驱动器的 Excel 工作表中)。但它也向我发送了用户尚未选择的空白值。我应该如何通过修改以下代码仅将填充的值发送到邮件。
function Initialize() {
var triggers = ScriptApp.getScriptTriggers();
for(var i in triggers) {
ScriptApp.deleteTrigger(triggers[i]);
}
ScriptApp.newTrigger("SendGoogleForm")
.forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
.onFormSubmit()
.create();
}
function SendGoogleForm(e)
{
try
{
var email ="abc@abc.com";
var subject = "Form Submission";
var s = SpreadsheetApp.getActiveSheet();
var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];
var message = "";
for(var i in headers) {
message += headers[i] + ' :: '+ e.namedValues[headers[i]].toString() + "\n\n";
}
message += "Sheet URL :: " + SpreadsheetApp.getActiveSpreadsheet().getUrl() + "\n";
MailApp.sendEmail(email, subject, message);
} catch (e) {
Logger.log(e.toString());
}
}
请帮我看看该怎么做。谢谢:)
最佳答案
另一种方法是使用三元语句:
message += e.namedValues[headers[i]] != "" ? e.namedValues[headers[i]].toString() + "\n\n" : "";
我在 GAS/Javascript 脚本中使用它来防止在生成的电子邮件中发送无关数据。
关于javascript - 如何在谷歌表单中仅邮寄填充值而不邮寄空白值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19078186/