Google Apps脚本 - 动态添加删除UiApp表单元素

时间:2014-05-07 06:35:11

标签: javascript google-apps-script google-sheets

我希望在我的应用程序中创建一个Ui表单部分,它将动态添加删除UiApp表单元素。我试图使用App Script Tutorials here

中的示例

此示例在执行add remove元素方面效果很好,但是当我使用提交按钮捕获值时,它会以JSON.stringify格式提交。当我只想以文本或字符串格式捕获值时,将添加到html电子邮件中。

如果有办法将JSON.stringify转换为text,string或仅以格式获取值,我将继续使用此示例。

如果不是,我想知道以下Javascript HTML代码是否可以转换为GAS代码,并且能够捕获HTML电子邮件模板中每个条目的值,以便在MailApp中使用。

http://jsfiddle.net/g59K7/

非常感谢代码的任何建议,示例或调整。

提前谢谢

1 个答案:

答案 0 :(得分:1)

如果您不希望结果位于JSON对象中,则可以调整_processSubmittedData(e)函数。现在他把它写成了一个对象,这很好。您所要做的就是有办法解析它:

  function _processSubmittedData(e){
  var result = {};
  result.groupName = e.parameter.groupName;
  var numMembers = parseInt(e.parameter.table_tag);
  result.members = []; 
  //Member info array
  for(var i=1; i<=numMembers; i++){
        var member = {};
        member.firstName = e.parameter['fName'+i];
        member.lastName = e.parameter['lName'+i];
        member.dateOfBirth = e.parameter['dob'+i];
        member.note = e.parameter['note'+i];
        result.members.push(member);
  }

  var htmlBody = 'Group Name: ' + result.groupName;
  for(var a in result.members) {
    var member = result.members[a];
    var date = member.dateOfBirth;
    var last = member.lastName;
    var first = member.firstName;
    var note = member.note;

    htmlBody += first + ' ' + last + ' was born on ' + date + ' and has this note: ' + note;
  }

  MailApp.sendEmail('fakeEmail@fake.com',"Test Subject Line", "", {htmlBody: htmlBody});
    }