使用Apps Script操作Google Forms下拉框:脚本无报错但未生效
Google Forms下拉框脚本无效果的问题修复
问题分析与修复
删除下拉选项脚本的问题
你的删除脚本中,判断条件用了FormApp.ItemType.MULTIPLE_CHOICE,但Google Forms的下拉框属于LIST_ITEM类型,并非多项选择题类型。这导致条件不成立,删除逻辑根本没执行。
修正后的删除脚本:
function deleteDropdownValues() { var formId = "1zf8tNDLHQZwFQnLWTFYTrx_X4k_ESLrM5kqUdCqz6GA"; var itemId = "2015071815"; // 下拉框ID var form = FormApp.openById(formId); var item = form.getItemById(itemId); if (item.getType() === FormApp.ItemType.LIST_ITEM) { item.asListItem().setChoices([]); Logger.log('下拉框选项已成功删除。'); } else { Logger.log('指定的元素不是下拉框。'); } }
添加下拉选项脚本的问题
createChoice()方法仅创建单个选项对象,不会自动添加到下拉框中。你需要把创建好的选项收集到数组里,再通过setChoices()或addChoices()方法应用到下拉框上。
修正后的添加脚本:
function addOptionToDropdown() { var formId = "1zf8tNDLHQZwFQnLWTFYTrx_X4k_ESLrM5kqUdCqz6GA"; var itemId = "2015071815"; // 下拉框ID var newOption = "XXXX"; var form = FormApp.openById(formId); var listItem = form.getItemById(itemId).asListItem(); // 创建选项数组 var newChoices = [ listItem.createChoice(newOption), listItem.createChoice("sssssss"), listItem.createChoice("eeeeeeeee") ]; // 替换现有选项(如果要保留原有选项,改用addChoices(newChoices)) listItem.setChoices(newChoices); Logger.log('下拉框选项已成功添加。'); }
额外说明
- 确保脚本绑定的Google账号拥有对应表单的编辑权限
- 运行脚本后,可通过表单编辑器查看下拉框变化,或检查日志确认执行状态
内容的提问来源于stack exchange,提问作者J. Doe
相关产品推荐
相关产品推荐

