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

Google Apps Script onFormSubmit事件返回空值/错误值问题

问题现象
  • 搭建的Google表单中设置了必填问题「My Question」,表单配置如下:
    Google表单问题配置截图
  • 该字段已开启必填校验,但在表单关联的电子表格响应表中,无法查看到该字段的提交结果,电子表格界面如下:
    关联电子表格响应表截图
  • 已配置表单提交触发器:当表单收到新提交内容时,自动运行电子表格脚本编辑器内的指定函数,触发器配置如下:
    表单提交触发器配置截图
  • 触发器绑定的函数代码:
function copyFormContents(e) {
  Logger.log(JSON.stringify(e))
}
  • 脚本运行日志中,返回的表单提交事件对象内容如下:
{
    "authMode": "FULL",
    "namedValues": {
        "My Question": [
            "",
            "Another answer"
        ]
    },
    /* 其余无关字段已省略 */
}
  • 异常表现:日志内My Question字段返回2个条目,其中包含1个空值;尝试切换该问题的必填/非必填状态,异常始终存在。

问题根因

该异常和问题的必填配置无关,核心原因是表单与关联电子表格的字段映射存在残留错位:
你此前大概率删除过旧版本的「My Question」问题,之后又重新创建了同标题的新问题,但旧问题在电子表格响应表中的列绑定关系没有被同步清理。每次有新的表单提交时,系统会同时向旧残留列、新问题列写入值:旧列匹配不到新表单的对应输入就会写入空字符串,新列写入用户实际提交的答案,最终就出现了日志里同名字段带空值的双条目结构;同时因为列映射错位,你在电子表格当前的对应列里看不到新提交的该字段内容。切换必填状态不会修改这个底层映射关系,因此无法解决问题。


修复方案

按以下步骤操作即可解决:

  1. 打开电子表格顶部菜单栏「扩展程序」-「Apps 脚本」,进入触发器管理页面,临时删除当前绑定的表单提交触发器,避免操作过程中触发异常脚本运行
  2. 回到电子表格的表单响应工作表,找到当前表头为「My Question」的列,整列删除
  3. 点击顶部菜单栏「表单」-「取消关联表单」,断开当前表格和表单的绑定关系
  4. 再次点击「表单」-「关联表单」,选中你原来使用的Google表单重新绑定,系统会自动重新生成全量正确的字段列映射
  5. 回到Apps脚本页面,重新新建表单提交触发器,绑定原有的copyFormContents函数
  6. 提交一条测试响应验证:此时电子表格会正常展示该字段的提交内容,脚本日志中My Question字段也只会返回单条有效答案,不会再出现空值条目。

提示:重新绑定表单不会丢失已收集的历史响应数据,若担心操作失误,可先为电子表格创建一个副本备份后再操作。


内容的提问来源于stack exchange,提问作者Manuel Perez Heredia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 05:57:17