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

2024-04-16

为什么 '.getChoices() https://developers.google.com/apps-script/reference/forms/list-item#getChoices()' 不适用于现有列表项?

我有以下代码,它通过 ID 获取表单中的项目,并且我打算更新表单项目的值。但是,当使用 .getChoices() 方法时,它会失败并出现错误 '类型错误:无法在对象 Item 中找到函数 getChoices。'

我要获取的项目是所需的列表项,并且是在创建列表项时then获取后,它可以正常工作,如列出的示例代码所示here https://developers.google.com/apps-script/reference/forms/choice#getValue().

我的代码如下:

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);
}

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

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


Item is an interface class that provides a few methods applicable to all form items. "Interface objects are rarely useful on their own; instead, you usually want to call a method like Element.asParagraph() to cast the object back to a precise class." ref https://developers.google.com/apps-script/guides/services/#dealing_with_interfaces

Since .getChoices()是一个属于ListItem https://developers.google.com/apps-script/reference/forms/list-item.html类,并且没有出现在Item,你需要投射你的Item to ListItem using Item.asListItem() https://developers.google.com/apps-script/reference/forms/item#asListItem().

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

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

  var choices = item.asListItem().getChoices();
  //                 ^^^^^^^^^^^^
}
else throw new Error( "Item is not a List." );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

修改现有表单值 - GetChoices() 不起作用 的相关文章

随机推荐

  • ExpressionHelper.GetExpressionText(表达式)不返回我的属性的名称

    我已经实现了 MVC 扩展来格式化应用程序中的数字 它基于找到的代码here https stackoverflow com a 7766382 455492 并且如下 public static MvcHtmlString Decimal
  • 如何在 bash 中启动 Docker-ubuntu 容器?

    答案来自这个问题 https stackoverflow com questions 21928691 how to continue a docker which is exited不工作 docker 容器总是先于我退出attach或不
  • 自定义通知声音未播放

    我正在尝试在状态栏通知上播放自定义声音 这 mp3文件位于res raw 但是当我通知用户时 声音不会播放 我尝试过使用 MediaPlayer 它可以工作 但我不想让它与 MediaPlayer 一起播放 这是我的方法 public vo
  • 在聚合物项目上转换 dart2js 时出错

    不支持的操作 无法在反射中使用ownerName 因为它未包含在 MirrorsUsed 注释中 ownerName只是聚合物元素上的已发布属性 我知道有一些这样的东西 在网络上 而不是在这里 但没有一个有可靠的答案 我还在下面得到了这个
  • bash 替换每行中的第一个字符

    我的文件如下所示 1 chrX 73833098 73834098 1 chrX 73889652 73890652 1 chrX 91194501 91195501 1 chrX 92000157 92001157 1 chrX 9210
  • 为什么导入的函数“作为”另一个名称保留其原始 __name__ ?

    Here from os path import exists as foo print foo name we get exists 为什么不 foo 哪个属性会给出 foo 您可以查看import foo as bar只是一个任务 你不
  • 有没有办法在不出现 PlatformNotSupportedException 的情况下读取响应标头?

    我正在为 ASP Net MVC 开发一个过滤器属性 当内容未被修改时 它将返回 304 响应 为了实现这一目标 能够读取控制器中设置的 Last Modified 标头值会很方便 似乎只是一个问题 在 Cassini Visual Stu
  • 我可以绕过 Windows 中 Statc 级联上下文菜单的 20 项限制(注册表项/子项)

    我正在为 Windows 中的 ImageMagick 创建详细的静态级联上下文菜单 一切似乎在功能方面都运行良好 直到我通过上下文菜单传递了 20 个项目 此后 单击命令将停止正常运行 项目也会消失 我知道这不是格式问题 因为我可以通过删
  • 为什么这个 .vimrc 映射在终端中不起作用(但在 MacVim 中起作用):map O

    我的 vimrc 文件中有两行 map
  • 使用Knockout将不同模型绑定到页面上的不同部分

    我在我的 asp net 应用程序中使用淘汰赛 javascript 库 对于淘汰赛我使用ko对象和应用绑定 方法来绑定它 现在我想将两个淘汰对象绑定到两个不同的用户界面部分 我如何使用第二个淘汰对象或第二个数据源 以便我可以在第二部分中使
  • Python:如何制作递归生成器函数

    我一直致力于为生物学问题生成所有可能的子模型 我有一个工作递归来生成我想要的所有子模型的大列表 然而 列表很快就会变得难以管理 在下面的示例中 N 12 是可能的 N gt 12 使用了太多内存 所以我想使用yield 将其转换为生成器函数
  • 如何注册音量变化通知?

    当 OS X 音量发生变化时 我需要通知我的应用程序 这适用于桌面应用程序 不适用于 iOS 我如何注册此通知 这可能有点棘手 因为某些音频设备支持主通道 但大多数不支持 因此音量将是每个通道的属性 根据您需要执行的操作 您可以仅观察一个通
  • 显示/隐藏 C# 控制台应用程序的控制台窗口

    我在谷歌上搜索了有关如何隐藏自己的控制台窗口的信息 令人惊讶的是 我能找到的唯一解决方案是涉及的 hacky 解决方案FindWindow 找到控制台窗口按其标题 我对 Windows API 进行了更深入的研究 发现有一种更好 更简单的方
  • 在 Core i7 Mac 上禁用睿频加速?

    有没有什么方法可以在运行 Mac OS X 的 Core i7 mac 上以编程方式禁用 Turbo Boost 我需要能够在代码优化等过程中出于基准测试目的执行此操作 如果做不到这一点 任何可以禁用 启用 Turbo Boost 的实用程
  • Mac 终端上的基本命令行不起作用

    我在尝试安装 mongodb 时更改了 bash 配置文件 但我的命令行均无法在终端上运行 我在网上读到我需要修复 PATH 但当我的命令都不起作用时我什至无法访问它 Help 错误地 我也遇到了同样的问题 要解决这个问题 我必须将 PAT
  • 生成随机布尔概率

    我只知道如何生成随机布尔值 真 假 默认概率为 50 50 但我怎样才能以自己的概率生成真假值呢 假设它返回 true 的概率为 40 60 或 20 80 等 一种方法是检查返回值Random Next 100 小于您期望的概率 但我无法
  • 在 Javascript 中根据 JSON 数据创建饼图

    我是 PHP 和 JavaScript 新手 我需要使用从 URL 获取的 JSON 数据创建一个饼图 JSON 数据是 Domain Artificial Intelligence Count 46 Domain Data Archite
  • Actionscript 内存管理、垃圾收集

    这个博客 http blogagic com 163 flex memory management and memory leaks varref 和其他人 指出 在清理对象时 您应该在 dispose 方法中将对象引用设置为 null 但
  • 人们可以放心地忽略宏和内置宏之间的区别吗?

    我从 Clojure 开始 这也是我的第一个 lisp 显然有很多东西需要吸收 为了减轻认知负担 我尝试找到我可以安全地忽略的部分 目前 人们能否安全地以相同的方式处理带有宏的表单和带有内置函数的表单 或者是否会出现以后出现的陷阱 换句话说
  • 修改现有表单值 - GetChoices() 不起作用

    为什么 getChoices https developers google com apps script reference forms list item getChoices 不适用于现有列表项 我有以下代码 它通过 ID 获取表单