如何通过脚本向现有 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);
};
}
我正在尝试为我的 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);
};
}