我花了好几个小时试图解决这个问题,因为在我这里提问之前我觉得我应该这样做。搜索,查看答案,尝试了一些东西。我想我是这样学习并扩展我的技能/知识。
无论如何,我正试图开始使用侧边栏来使我的工作表脚本应用程序更好地工作,并进行小块测试。我希望Clear Old按钮(此时)只需打开一个包含日期的警告框,该文件框由datePicker生成的文本框提供。
这是HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Datepicker - Default functionality</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$( function() {
$( "#datepicker" ).datepicker();
} );
</script>
<base target="_top">
</head>
<body>
<p><strong>Clear Old Entries</strong></p>
<p>Clear Entries before</p>
<p><input type="text" id="datepicker"></p>
<p><input type="submit" value="Clear Old" onClick="google.script.run.ClearOld(document.getElementById(datepicker).value)" /></p>
<p><input type="button" value="Close Sidebar" onClick="google.script.host.close()" /></p>
</body>
</html>
以下是获取菜单项和侧边栏的脚本代码,以及我尝试用作短期测试的函数:
function onInstall(e) {
onOpen(e);
}
function onOpen(e) {
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.createMenu('Bulletinator')
.addItem('Create Bulletin', 'bulletinatorSidebar')
.addItem('Clear Old', 'clearOldSideBar')
.addToUi();
}
function bulletinatorSidebar() {
var html = HtmlService.createHtmlOutputFromFile('BullV2Side')
.setTitle('Bulletinator')
.setWidth(300);
SpreadsheetApp.getUi().showSidebar(html);
}
function clearOldSideBar() {
var html = HtmlService.createHtmlOutputFromFile('ClearOldSide')
.setTitle('Clear Old Entries')
.setWidth(300);
SpreadsheetApp.getUi().showSidebar(html);
}
var today;
var todayDay;
var todayDate;
var ui = SpreadsheetApp.getUi();
var sh = SpreadsheetApp.getActiveSheet();
var rg = sh.getDataRange();
var vA = rg.getValues();
var rowsFound = 0;
var rowsDeleted = 0;
function ClearOld(value) {
var clearDate=value;
var testThis = ui.alert(
'Clear entries prior to',
clearDate,
ui.ButtonSet.YES_NO);
单击侧栏中的按钮时没有响应,执行记录中没有任何内容。
另一方面,我也很难在侧边栏中设置两个datePickers;只有一个工作。这就是为什么这个设置有两个单独的侧边栏被调用。
感谢您的帮助。
答案 0 :(得分:1)
似乎没有定义datepicker
变量。你必须使用下一个代码
onClick="google.script.run.ClearOld(document.getElementById('datepicker').value)"
或
onClick="google.script.run.ClearOld($('#datepicker').val())"