如何通过脚本向现有 google 表单项添加验证?

How to add validation to existing google form items via script?

我正在尝试为我的 google 表单文本项添加验证,特别是文本验证。

但是,在我看来 'setValidation()' 函数只适用于已知类型的项目,例如 TextItem

据我了解,如果我通过 'getItemById()' 提取表单项,我会得到一个通用项。它仍然具有 'TEXT' 类型,但 google 脚本只是不将其视为 TextItem,因此 'setValidation()' 函数对其不可用。

我曾尝试做 .asTextItem() 之类的事情,但没有成功。这是一个示例脚本,由于错误

而无法 运行

'TypeError: Cannot find function setValidation in object Item. (line 10, file "Code")' on line 9.

function validationTest() {
var form = FormApp.getActiveForm();
  var items = form.getItems();
  var textValidation = FormApp.createTextValidation()
    .requireNumberGreaterThanOrEqualTo(0)
    .requireWholeNumber();
  for (var i = 0; i<items.length; i++) {
    items[i].asTextItem();
    items[i].setValidation(textValidation);
  };
}

那么,这个问题是否有已知的解决方案或解决方法?提前谢谢你。

SC

您应该在验证构建器的末尾添加 .build(),如图所示 here

此外,asTextItem 应与 setValidation 同时调用:

function validationTest() {
var form = FormApp.getActiveForm();
  var items = form.getItems();
  var textValidation = FormApp.createTextValidation()
    .requireNumberGreaterThanOrEqualTo(0)
    .requireWholeNumber()
    .build();
  for (var i = 0; i<items.length; i++) {
    items[i].asTextItem().setValidation(textValidation);
  };
}