我几乎已经有了一个 HTML 表单选择器,它根据 google 表格列中的数据创建一个数组(完成),并将该数据填充到下拉框中(完成)。
我整个周末一直在尝试弄清楚如何捕获下拉选项的选择,然后将其合并到一个变量中。
这是我的启动 HTML 弹出窗口的 google 脚本代码:
function ClientDropDownHTML() {
var template = HtmlService.createTemplateFromFile('index');
var htmlDlg = template.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME)
// var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// var lastRow = sheet.getLastRow();
// var myArray = sheet.getRange('A2:A' + lastRow).getValues();
.setWidth(500)
.setHeight(150);
SpreadsheetApp.getUi()
.showModalDialog(htmlDlg, 'Select An Existing Client');
}
HTML 下拉菜单运行。这是我的 HTML 表单的代码,它在 Google 表格数据上运行数组并将其填充为选择器:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form id="myForm">
<select id="selectClient">
<option>Choose an Existing Client</option>
<? var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); ?>
<? var clientindex = sheet.getRange('T2').getValue(); ?>
<? var myArray = sheet.getRange('V2:V' + clientindex).getValues(); ?>
<? for (var i = 0; i < myArray.length; ++i) { ?>
<option> <?=myArray[i]?> </option>
<? } ?>
</select>
</form>
</body>
</html>
这就是我被困住的地方。首先,我需要确保我可以捕获选择,因此我尝试记录它 - 我尝试过如下所示的操作:https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement#Example
我的 HTML 最终得到如下内容:
<? var select = document.getElementById('selectClient'); ?>
<? console.log(select.selectedIndex); ?>
<? console.log(select.options[select.selectedIndex].value) ?>
但是,如果我这样做,我只会收到“文档未定义”错误。
我在该网站上阅读了不同的问题,但似乎没有一个解决方案适合我。
简而言之,我需要一种方法:
从 HTML 中引用用户的选择
将其存储在变量中
能够将该变量移回 Google 表格。