【发布时间】:2019-05-15 03:58:33
【问题描述】:
经过长时间的寻找(我最近一直在生活和呼吸 StackOverflow),我想我会把我的问题告诉大家。
我还是 Google Script 的新手,请多多包涵。 我正在尝试编写一个动态下拉列表作为 HTML 表单中的输入。我希望获得列表以使用谷歌表中的值填充选项。返回数组值的函数getList按预期工作,但是将选项标签及其值添加到列表的函数失败了......
看看我在下面的内容,如果您有任何见解或可以引导我走向正确的方向,请告诉我。谢谢!!
//basic function that builds the form using indexEvent.html as the template
function doGet(e) {
return HtmlService
.createTemplateFromFile('index')
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.NATIVE);
}
//Simple function to find the wanted sheet by it's independent ID
function getSheetById(id) {
return SpreadsheetApp.getActive().getSheets().filter(
function(s) {return s.getSheetId() === id;}
)[0];
}
//Gets existing values in Column "B" and lump into 1-D array
function getList() {
var ss = SpreadsheetApp.openById('sheet ID');
var sheet = getSheetById(240411081);
var list = sheet.getRange(2, 2, sheet.getLastRow()-1, 1).getValues();
var values = list.toString().split(",");
return values;
}
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<form id="Form" onload="addList()">
<div>
<label for="List">Select Value:</label><br>
<input list="list" name="list" placeholder="Choose Value" required> -->
<datalist id="dropdownList">
<!--
This is where I am trying to dynamical add <option> tags
EXAMPLE:
<option value="values[0]" />
<option value="values[1]" />
<option value="values[2]" />
... and so on
-->
</datalist>
</div>
</form>
</body>
<script>
function addList() {
google.script.run
.withFailureHandler(onFailure)
.withSuccessHandler(addListValues)
.getList();
}
function addListValues(values) {
var list = document.getElementById('dropdownList');
for (var i = 0; i < values.length; i++) {
list.appendChild('<option value="' + values[i] + '" />');
}
}
function onFailure(err) {
alert('There was an error!' + err.message);
}
</script>
<html>
【问题讨论】:
标签: javascript html forms google-apps-script