我一直在处理一个Google Sheet,它会在打开时触发一个对话框。我无法做到的是弄清楚如何从输入字段中获取值到code.gs中的变量
我一直在寻找教程和代码示例很长一段时间,并且找不到任何可以帮助我了解如何完成此操作的内容。
现在......在这种特殊情况下,我只需要在对话框中从日期选择器中获取日期。当单击按钮从code.gs运行一个函数时,我想弄清楚如何从datepicker中获取函数。
到目前为止我所拥有的是:
code.gs:
function optionOverlay() {
var html = HtmlService.createHtmlOutputFromFile('overlayHTML')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
SpreadsheetApp.getUi()
.showModalDialog(html,' ')
}
function blankSheet() {
// The code below activates the Schedule Template and creates a duplicate of the blank template sheet.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var st = ss.getSheetByName("Schedule Template");
st.activate()
SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet();
// This changes the contents of the cell (I1) to the date from the dialog box.
var dialogDate = ?????
SpreadsheetApp.getActiveSheet().getRange('I1').setValue(dialogDate);
// This changes the new sheet's name to the date range of the week [based on cell (I2)].
var dateRange = SpreadsheetApp.getActiveSheet( ).getRange("I2").getValue();
SpreadsheetApp.getActiveSpreadsheet().renameActiveSheet(dateRange);
}
overlayHTML:
<h1>Create new schedule for the week starting on: </h1>
<input type="date" name="datePicker" id="datePicker" />
<button onclick="google.script.run.blankSheet()">Create schedule all new schedule</button>
<button onclick="google.script.run.copyLast()">Use last week as template</button>
</div>
我已经看到很多关于在折旧的ui服务中创建jQuery日历和事件处理程序,但没有关于如何使用HtmlService将数据从一个地方获取到另一个地方。我在这一点上很困惑,并且喜欢任何方向。
答案 0 :(得分:0)
要从输入标记中获取值,可以使用DOM方法getElementById('idName')
和元素的value
属性。
<input type="date" name="datePicker" id="datePicker" />
<button onclick="sendInputToGS()">Create schedule all new schedule</button>
<script>
window.sendInputToGS = function() {
var theDate = document.getElementById("datePicker").value;
google.script.run.blankSheet(theDate)
}
</script>
在Code.gs文件中,您需要使用括号中的参数检索发送的值。
function blankSheet(dateArg) { //dateArg receives the value sent