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

Google Apps Script实现Squarespace表单邮件确认时遇namedValues未定义错误

解决Google Apps Script中TypeError: Cannot read properties of undefined (reading 'namedValues')的问题

问题原因

你手动运行onFormSubmit函数时,没有传入表单提交事件所需的event参数。这个函数是表格的表单提交触发函数,只有当表格收到新的表单提交(比如Squarespace推送的数据)时,Google Apps Script才会自动生成包含namedValues的event对象并传入函数。手动运行时event对象为undefined,所以会触发该错误。

解决方案

  • 不要手动运行触发函数
    直接通过Squarespace提交测试表单,触发表格的表单提交事件,此时函数会自动获取到正确的event对象,正常执行。

  • 编写测试函数验证邮件逻辑
    如果需要单独测试邮件发送或数据处理逻辑,可以写一个模拟event对象的测试函数,示例如下:

    // 正式的表单提交触发函数
    function onFormSubmit(event) {
      // 从event中获取表单数据
      const formData = event.namedValues;
      const userEmail = formData['邮箱'][0]; // 替换为你表单中的邮箱字段名
      const userName = formData['姓名'][0]; // 替换为你表单中的姓名字段名
    
      // 邮件内容
      const subject = '表单提交确认';
      const body = `您好${userName},感谢您的提交,我们已收到您的信息。`;
    
      // 发送邮件
      MailApp.sendEmail(userEmail, subject, body);
    }
    
    // 测试函数,模拟event对象
    function testOnFormSubmit() {
      // 模拟表单提交的namedValues数据
      const mockEvent = {
        namedValues: {
          '邮箱': ['test@example.com'],
          '姓名': ['测试用户']
          // 按你的表单字段添加更多数据
        }
      };
      // 调用正式函数,传入模拟的event
      onFormSubmit(mockEvent);
    }
    

    运行testOnFormSubmit函数即可验证邮件逻辑是否正常,不会再出现namedValues未定义的错误。

  • 检查触发器配置
    确认你的触发器配置正确:

    • 运行函数:onFormSubmit
    • 事件源:电子表格
    • 事件类型:表单提交
      确保没有选择错误的事件类型(比如“打开电子表格”)。

内容的提问来源于stack exchange,提问作者DoverSeed Google Workspace Adm

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 15:56:01