Google Sheets Script 边栏按钮未激活功能

Google Sheets Script Sidebar button not activating function

我花了好几个小时想弄清楚这个问题,因为我觉得我应该先弄清楚,然后再在这里提问。搜索,查看答案,尝试东西。我想我以这种方式学习并扩展了我的 skills/knowledge。

无论如何,我正在尝试开始使用侧边栏来让我的工作表脚本应用程序更好地工作,并在小块中进行测试。我希望“清除旧”按钮(此时)简单地打开一个带有日期的警告框,该日期来自 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);

当我点击边栏中的按钮时没有任何反应,执行记录中也没有任何显示。

附带说明一下,我也为能够在侧边栏中有两个日期选择器而苦苦挣扎;只有一个工作。这就是为什么此设置有两个单独的侧边栏被调用的原因。

感谢您的帮助。

看来,datepicker变量没有定义。你必须使用下一个代码

onClick="google.script.run.ClearOld(document.getElementById('datepicker').value)"

onClick="google.script.run.ClearOld($('#datepicker').val())"