javascript - 如何在谷歌表单中仅邮寄填充值而不邮寄空白值?

标签 javascript email triggers google-apps-script google-forms

我制作了一个包含许多字段的谷歌表单。我已经设置了一个触发器来将表单值发送到特定的(也将其保存在谷歌驱动器的 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/

相关文章:

javascript - 可被整除的最小公倍数

javascript - 在 iPhone Web 应用程序中禁用滚动?

php - 通过cron作业发送邮件的实现

android - 如何在普通表和 fts3 表之间创建触发器?

MySql 表和触发器

javascript - 为什么类中的私有(private)变量在转译代码中被视为公共(public)变量

javascript - Highcharts 工具提示对于被黑的甘特图无法正常工作

ruby-on-rails - 从联系表(rails)保存数据

android - 在 Android 中的电子邮件中嵌入图像

原始事务回滚后Mysql触发器插入持久化