Google Forms Apps Script仅发送单个表单值问题排查求助
问题排查与修复
你的代码存在两个关键错误,导致仅能获取单个表单结果:
1. 循环内变量名冲突
循环中你用var items = items[i];重新赋值了原本存储所有表单响应项的items数组,第二次循环时items已经变成单个响应对象,无法继续遍历,循环仅执行一次。
2. 循环边界条件错误
循环条件i<=items.length会让索引超出数组范围(数组索引从0开始,最大索引为items.length-1),触发undefined错误,直接中断循环执行。
另外,FormApp.getActiveForm();这行代码没有实际作用,可直接删除。
修正后的完整代码
function onSubmit(e){ var items = e.response.getItemResponses(); var reporter = e.response.getRespondentEmail(); var message = ''; // 修正循环条件和变量名 for (var i = 0; i < items.length; i++) { var item = items[i]; var question = item.getItem().getTitle(); var answer = item.getResponse(); message += (i + 1).toString() + '. ' + question + ': ' + answer + '\n'; } var email = "sohamtracysdsf2289@email.com"; var title = 'Event RSP'; var content = 'This is a RSVP Request\n\n' + message; MailApp.sendEmail(email, title, content, {cc: reporter}); }
修正后,脚本会遍历所有表单响应项,将所有问题和答案完整拼接进邮件内容,发送完整的表单提交结果。
内容的提问来源于stack exchange,提问作者Tony
相关产品推荐
相关产品推荐

