我在 HTML 对话框中有一个填充了工作表名称的下拉菜单。
我需要返回在下拉列表中选择的值并在后面的脚本中使用它。
如何返回从 HTML 对话框中选择的值,以便我可以在新函数中使用它?
函数某物(返回值){ 东西 }
煤气
function getDialog() {
var html = HtmlService.createHtmlOutputFromFile('index')
.setWidth(400)
.setHeight(300);
SpreadsheetApp.getUi().showModalDialog(html, 'New Component Form');
}
function getList() {
var out = new Array()
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
for (var i=0 ; i<sheets.length ; i++) {
if (sheets[i].getName()!=="FullOptionLists" && sheets[i].getName()!=="sumAppHeaders" && sheets[i].getName()!=="RawData") {
out.push(sheets[i].getName())
}
}
return out;
}
index.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body onload="addList()">
<form id="Form">
<div>
<label for="List">Select Value:</label><br>
<input list="dropdownList" name="list" placeholder="Choose Value" required>
<datalist id="dropdownList">
</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++) {
var option = document.createElement("option"); // Modified
option.value = values[i]; // Modified
list.appendChild(option); // Modified
}
}
function onFailure(err) {
alert('There was an error!' + err.message);
}
</script>
<HTML>
从 HTML 对话框返回值:
gs:
function launchAQuickDialog() {
const ui = SpreadsheetApp.getUi();
const html = HtmlService.createHtmlOutputFromFile("ah2");
ui.showModelessDialog(html,"Get Data");
}
function saveMyNewData(v) {
PropertiesService.getScriptProperties().setProperty("Name",v);
Logger.log(getMyNewData())
}
function getMyNewData() {
let data = PropertiesService.getScriptProperties().getProperty("Name");
SpreadsheetApp.getActive().toast(`Data:${data}`)
return data;
}
html:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<input type="text" id="txt1" onChange="google.script.run.saveMyNewData(this.value)">
<script>
</script>
</body>
</html>
演示: