You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对Google表单中六个下拉字段执行唯一性验证

解决Google表单下拉框唯一城市验证问题

Google表单原生不支持重复选项的自定义验证,需要借助Google Apps Script实现你需要的逻辑,包括至少选一个城市、所有选中城市唯一,且支持首次提交和编辑响应时的验证。

实现步骤

1. 打开表单脚本编辑器

打开你的Google表单,点击右上角的「⋮」→「脚本编辑器」,进入Apps Script开发界面。

2. 编写验证脚本

替换编辑器中的默认代码为以下脚本,可根据你的表单字段配置调整:

function validateUniqueCities(e) {
  // 获取提交/编辑的响应对象
  const response = e.response;
  if (!response) return;

  const itemResponses = response.getItemResponses();

  // 方式1:按字段标题匹配(推荐,不受字段顺序影响)
  // 替换为你表单中6个城市下拉框的实际标题
  const cityFieldTitles = ["城市选项1", "城市选项2", "城市选项3", "城市选项4", "城市选项5", "城市选项6"];
  const cityResponses = itemResponses
    .filter(itemResp => cityFieldTitles.includes(itemResp.getItem().getTitle()))
    .map(itemResp => (itemResp.getResponse() || "").trim());

  // 方式2:按字段位置匹配(如果下拉框是表单前6个字段)
  // const cityResponses = itemResponses.slice(0, 6).map(itemResp => (itemResp.getResponse() || "").trim());

  // 过滤空值,得到用户实际选中的城市列表
  const selectedCities = cityResponses.filter(city => city !== "");

  // 验证:至少选择一个城市
  if (selectedCities.length === 0) {
    throw new Error("请至少选择一个城市");
  }

  // 验证:选中的城市无重复
  const uniqueCitySet = new Set(selectedCities);
  if (uniqueCitySet.size !== selectedCities.length) {
    throw new Error("所有选中的城市必须唯一,不能重复");
  }
}

3. 设置触发条件

脚本需要绑定「表单提交」触发器才能生效(编辑响应时也会触发该事件):

  • 在脚本编辑器左侧点击「触发器」图标(闹钟样式)。
  • 点击「添加触发器」,配置参数:
    • 要运行的函数:validateUniqueCities
    • 部署类型:Head
    • 事件源:表单
    • 事件类型:表单提交
  • 点击「保存」,按照提示完成脚本权限授权(需要允许脚本访问你的表单数据)。

4. 测试验证逻辑

提交或编辑表单响应时:

  • 若未选择任何城市,会弹出错误提示并阻止提交。
  • 若选中重复城市,同样会弹出错误提示并阻止提交。
  • 符合要求的响应则会正常保存。

注意事项

  • 确保脚本中的字段标题/位置与实际表单一致,否则会导致验证失效。
  • 如果后续修改了表单的字段标题或顺序,需要同步更新脚本中的对应配置。
  • 脚本授权是安全的,仅用于处理当前表单的响应数据,不会访问其他无关内容。

内容的提问来源于stack exchange,提问作者loveleeday

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 17:00:56