首页 > 解决方案 > 在 Google Apps 脚本中将复选框的值存储在数组中

问题描述

我有一个这样的动态数组:

var PartnerEmailList = [one@email.com, two@email.com, three@email.com];

以下函数创建一个显示在showModalDialog窗口中的表。

function makeTableHTML() {
  var PartnerEmailList = [one@email.com, two@email.com, three@email.com];
  var result = "<table border=0>";
  result += "<tr><td style=\"text-align:center\"><input type=\"checkbox\" name =" + PartnerEmailList[0] + " value =" + PartnerEmailList[0] + " checked></input></td>";
  result += "<td style=\"vertical-align:text-middle\">" + PartnerEmailList[0] + "</td></tr>";
  for(var i=1; i<PartnerEmailList.length; i++) {
    result += "<tr><td style=\"text-align:center\"><input type=\"checkbox\" unchecked></input></td>";
    result += "<td style=\"vertical-align:text-middle\">" + PartnerEmailList[i] + "</td></tr>";
  }
  result += "</table>";
  result += "<input type=\"submit\" value=\"Submit\" class=\"action\" onclick=\"form_data()\">"
  result += "<input type=\"button\" value=\"Close\" onclick=\"google.script.host.close()\">"

  return result;
}

用户单击运行以下脚本的 Google 表格中的按钮。此脚本会弹出一个 ModalDialog 窗口,用户可以在其中检查他们想要将此产品发送到哪些电子邮件。

function SelectEmails(){
  var ui = SpreadsheetApp.getUi();
  var result = makeTableHTML();
  var bccSend = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('main_gen').getRange(2,2).getValue();
   if(bccSend === ''){
    //Call the HTML file and set the width and height
    var html = HtmlService.createHtmlOutput(result)
      .setWidth(450)
      .setHeight(300);

  //Display the dialog
  var dialog = ui.showModalDialog(html, "Select the intended recipients of this briefing.");
  } 
}

我需要编写一个函数来查看所有复选框(它们都在 html 代码中分配了一个值)并将每个检查的值存储在一个数组中。我将在不同的函数中调用这个数组来实际发送电子邮件。

可能有更好的方法来解决这个问题,但这是我迄今为止想出的。任何帮助将非常感激!谢谢!

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


推荐阅读