javascript - Google Apps 脚本 | Switch Case 仅选择默认选项

标签 javascript email google-apps-script case

我有一个很好的表单,用户可以在其中提交数据。为了学习,我只有一个表单域,它是一个带有 2 个选项的单选按钮。生成的电子表格只有 2 列,“时间戳”和“名称”。

我的脚本的目标是评估来自表单提交的事件驱动数据,然后更改变量中的值,以便可以将电子邮件发送给不同的用户。案例从不评估,结果始终是默认的。这是我的脚本,其中来自其他来源:Digital Inspiration .

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 subject = "Form Test";  

var s = SpreadsheetApp.getActiveSheet();
var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];    
var message = "";    

// Credit to Henrique Abreu for fixing the sort order

for(var i in headers) {
  message += headers[i] + ' :: '+ e.namedValues[headers[i]].toString() + "\n\n"; 
}

message += headers[1] + "\n";
message += e.namedValues[headers[1]]; \\ I left this in to check datavalues in the email
message += e.namedValues[headers[1]]; \\ I left this in to check datavalues in the email
message += e.namedValues[headers[1]] + "\n";

var email = e.namedValues[headers[1]].toString; \\ I would ASSUME that this would store \\the spreadhseet data to the variable email,

but it doesn't seem to do that.

message += "Sheet URL :: " + SpreadsheetApp.getActiveSpreadsheet().getUrl() + "\n";

     switch (email)
    {
        case "basdf":
            email = "email1@hotmail.com";
            break;
        case "dfdsa":
            email = "email2@hotmail.com";
            break;
        default:
            email = "email3@hotmail.com";
            break;
    }




MailApp.sendEmail({
  to: email,
  subject: subject,
  body: message,
  })
   } catch (e) {
Logger.log(e.toString());   }
 }

最佳答案

试试这个片段。它检查标题列名称与表单提交的值,然后将相应的值分配给电子邮件变量。

var email = "";

for(var i in headers) {
  if (headers[i] == "email") {
     email = e.namedValues[headers[i]].toString();
  }
  message += headers[i] + ' :: '+ e.namedValues[headers[i]].toString() + "\n\n"; 
}

switch (email)  {
        case "basdf":
            email = "email1@hotmail.com";
            break;
        case "dfdsa":
            email = "email2@hotmail.com";
            break;
        default:
            email = "email3@hotmail.com";
            break;
    }

关于javascript - Google Apps 脚本 | Switch Case 仅选择默认选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24175814/

相关文章:

java - Hybris 自定义电子邮件设置自定义属性

mysql - 在 MySQL 查询完成之前,Automator 发送带有不完整表的电子邮件

google-apps-script - 如何启用对 FormApp 的权限?

javascript - "make this a quiz"并在 Google 电子表格脚本中使用 FormApp 创建答案键

javascript - 使用node.js require加载模块

django - 未配置电子邮件时,如何使带有密码重置的django应用正常出现故障?

javascript - 使用延迟加载禁用图像的默认灯箱

javascript - 如果 Google 应用程序脚本中省略了 var/const,我的 getter 会执行什么?

javascript - 如何在 Javascript 中存储特定类的对象数组?

javascript - 如何在 jQuery 中为 "active"滚动菜单的链接创建异常(exception)?