gpt4 book ai didi

google-apps-script - 修改现有表单值 - GetChoices() 不起作用

转载 作者:行者123 更新时间:2023-12-03 06:15:27 25 4
gpt4 key购买 nike

为什么'.getChoices() ' 不适用于现有列表项?

我有以下代码,它通过 ID 获取表单中的项目,并且我打算更新表单项目的值。但是,当使用 .getChoices() 方法时,它会失败并显示错误“TypeError: Cannot find function getChoices in object Item.

我要提取的项目是所需的列表项,当创建列表项然后提取时,它会正常工作,如 here 列出的示例代码所示。 。

我的代码如下:

function getWeekNumberFormItem() {
var form = FormApp.getActiveForm();
var item = form.getItemById(12345);//redacted for privacy, but the ID in here is correct.
var title = item.getTitle();
var itemType = item.getType();
Logger.log('Item Type: ' + itemType);
Logger.log('Item Title: ' + title);
var choices = item.getChoices();
Logger.log(choices);
}

为了证明它是一个列表项,我的日志输出是:

enter image description here

我是否错误地使用了它,或者它只能在 Apps 脚本也创建该项目时使用?相反,我如何获取此列表项中的选项并使用新选项更新它们?我看到其他用户已经成功做到了这一点,所以我相信这是可能的。

最佳答案

Item 是一个接口(interface)类,它提供了一些适用于所有表单项的方法。 “接口(interface)对象本身很少有用;相反,您通常需要调用像 Element.asParagraph() 这样的方法来将对象强制转换回精确的类。” ref

因为 .getChoices() 是属于 ListItem 的方法类,并且不会出现在 Item 中,您需要使用 Item.asListItem()Item 转换为 ListItem .

...
var itemType = item.getType();

if (itemType == FormApp.ItemType.LIST) {

var choices = item.asListItem().getChoices();
// ^^^^^^^^^^^^
}
else throw new Error( "Item is not a List." );

关于google-apps-script - 修改现有表单值 - GetChoices() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30359367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com