javascript - 复选框违反数据验证规则
问题描述
我使用应用程序脚本生成了多个复选框(所有复选框都未选中),它们都具有相同的代码,但其中一些在单击时会导致弹出窗口显示它们违反了数据验证规则(并且它们仍然未选中)。我手动检查(在数据验证菜单中),它们都有相同的规则,如果我删除规则,没有任何变化。
var enforceCheckbox = SpreadsheetApp.newDataValidation(); enforceCheckbox.requireCheckbox(); enforceCheckbox.setAllowInvalid(false); enforceCheckbox.build(); checkboxRange.setDataValidation(enforceCheckbox);
在我的脚本中,它们的所有值都使用 onEdit 事件进行检查,但由于我什至无法编辑它们的值,我怀疑这是否相关。
解决方案
原来问题是受影响的单元格被格式化为纯文本。将格式设置为自动解决了该问题。
感谢@Cooper,我发现了通过代码添加复选框的简单方法,遗憾的是这似乎在应用程序脚本参考页面上没有得到很好的记录。
对于其他遇到此问题的初学者,您可以使用以下方法添加一个复选框:
range.insertCheckboxes();
range.insertCheckboxes(checkedValue);
range.insertCheckboxes(checkedValue, uncheckedValue);
您可以使用以下方法删除复选框:
range.removeCheckboxes();
推荐阅读
- objective-c - UISearchController - 搜索结果显示不同的记录
- c - 身份属性的位操作
- java - 为什么此方法只将 0 的值返回到新数组?
- jquery - 在 jQuery 中发布到 Firebase 实时数据库时出现“错误请求 400”,但可以使用 Postman
- javascript - 重构具有相同逻辑的两种方法仅因它们使用的运算符而异?
- python - 集合是无序的,但它仍然支持 2 集合的减法,它在内部是如何工作的?
- java - 如何从ansible下载jar文件
- lambda-calculus - 为什么在 λ-演算中引入 Ycombinator 是必要的?
- reactjs - 使用 React Router 更改路由时导航栏组件位置不会更新
- json - 'utf-8' codec can't decode byte 0xf0 in position 12 on LZ4 and Python 3.x