所以我试图在 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');
}
}
代码将始终勾选第二个复选框,即使第一个复选框被勾选。
最佳答案
当您查询时A13
或 B13
另一个单元格将自动取消选中。
因此,我认为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/