javascript - 如何选中 Google Apps Script 中的复选框并取消选中所有其他单元格?

标签 javascript google-apps-script google-sheets checkbox

所以我试图在 Google 表格上制作一个登录/注册表单,我有两个复选框,一个表示登录,一个表示注册。在我的应用程序脚本中,我试图使其只能检查其中之一。这是我的代码,它不起作用。帮助?

function signupLogin() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  if (sheet.getRange('A13').isChecked() === 'TRUE') {
    sheet.getRange('B13').setValue('FALSE');
  } else {
    sheet.getRange('B13').setValue('TRUE'); 
  }
}

代码将始终勾选第二个复选框,即使第一个复选框被勾选。

最佳答案

当您查询时A13B13另一个单元格将自动取消选中。
因此,我认为onEdit()解决方案是您正在寻找的:

function onEdit(e) {
  
  const as = e.source.getActiveSheet();
  const cell = e.range.getA1Notation();
  const cell_checks = ['A13','B13'];
  if(as.getName() == "Sheet1" && cell_checks.includes(cell) && e.range.isChecked())
  {cell_checks.filter(val=>val!=cell).forEach(c=>as.getRange(c).uncheck())}  
}
要使用此解决方案,只需 保存 将上述代码发送到脚本编辑器,然后每次单击 Sheet1 中的复选框时(根据您的需要修改名称)其余复选框将取消选中。
此代码也是可扩展的。也就是说,如果你想拥有 多个 复选框,当您单击其中一个时,其余的将变为未选中状态。您可以在此处定义复选框列表:
 const cell_checks = ['A13','B13'];

关于javascript - 如何选中 Google Apps Script 中的复选框并取消选中所有其他单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64027655/

相关文章:

javascript - FullCalendar:如何重新创建/重新初始化 FullCalendar 或批量添加多个事件

python - 将数据从数据框推送到谷歌工作表

python - 使用 Python 访问 Google 电子表格以供服务器到服务器使用

jquery - Google Apps 脚本 (GAS) - 创建 ContentService API 以提供来自 Google Drive 的 JSON 数据

api - 使用其他帐户拥有的 channel 将 Youtube Analytics API 与 Google Script 结合使用

google-apps-script - 离线使用 Google Apps 脚本

javascript - 纯 CSS 下拉菜单真的可行吗?

javascript - 如何在特定条件下取消popState

javascript - 基本 JS Canvas 游戏

javascript - 根据谷歌表格中缺失的数据创建表单