После долгой охоты ( В последнее время я живу и дышу StackOverflow ), я решил довести мою проблему до всех вас.
Я все еще новичок вGoogle Script, так что терпите меня.Я пытаюсь написать динамический раскрывающийся список в качестве ввода в форме HTML.Я надеюсь получить список для заполнения параметров значениями из листа Google.Функция 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>