Javascript TypeError:无法读取属性';价值观';未定义的类型(第2行,文件“自动填写Google文档”)
我正在尝试使用应用程序脚本将我的谷歌表单链接到谷歌文档模板。我一步一步地关注YouTube上的一个视频,但出于某种原因,我被这个错误标题卡住了 TypeError:无法读取未定义的属性“值”(第2行,文件“自动填充Google文档”) 这是我的剧本:Javascript TypeError:无法读取属性';价值观';未定义的类型(第2行,文件“自动填写Google文档”),javascript,google-apps-script,undefined,Javascript,Google Apps Script,Undefined,我正在尝试使用应用程序脚本将我的谷歌表单链接到谷歌文档模板。我一步一步地关注YouTube上的一个视频,但出于某种原因,我被这个错误标题卡住了 TypeError:无法读取未定义的属性“值”(第2行,文件“自动填充Google文档”) 这是我的剧本: function autoFillGoogleDocFromForm(e) { var reasonForInjury = e.values[0]; var name = e.values[1]; var location = e.va
function autoFillGoogleDocFromForm(e) {
var reasonForInjury = e.values[0];
var name = e.values[1];
var location = e.values[2];
var dateOfInjury = e.values[3];
var templateFile = DriveApp.getFileById("1qOXVwyh45nUJAWYgY7p7JdbexxrsNN-myLe8DQrn-Cs");
var templateResponseFolder = DriveApp.getFolderById("1zxIQ-_JzIhbcvE3iBEDL0VtvZpCUtTCT");
var copy = templateFile.makeCopy(name + ", " + location, templateResponseFolder);
var doc = DocumentApp.openById(copy.getId());
var body = doc.getBody()
body.replaceText("{{Reason for Injury}}", reasonForInjury);
body.replaceText("{{EE Name}}", name);
body.replaceText("{{Location}}", location);
body.replaceText("{{DOI}}", dateOfInjury);
doc.saveAndClose();
}
调试器说我的值未定义。如何更正此问题?e未在代码段中定义。因此,您可能试图阅读一些不存在的内容。基本上,您需要弄清楚如何定义它。它来自哪里?您试图访问的事件对象,并在编辑器中运行代码,而不是创建事件(提交表单)
e
是应用程序脚本作为参数传递给函数的事件对象。事件对象包含导致触发的上下文的相关信息。例如,用户提交的值。事件对象用于触发器。触发器允许应用程序脚本在发生特定事件(如提交表单)时自动运行函数
要解决此问题,请提交一个表单并在函数的参数中添加事件对象
您的代码应该如下所示:
function myFunction(e) {
var reasonForInjury = e.values[0];
var name = e.values[1];
var location = e.values[2];
var dateOfInjury = e.values[3];
var templateFile = DriveApp.getFileById("id");
var templateResponseFolder = DriveApp.getFolderById("id");
var copy = templateFile.makeCopy(name + ", " + location, templateResponseFolder);
var doc = DocumentApp.openById(copy.getId());
var body = doc.getBody()
body.replaceText("{{Reason for Injury}}", reasonForInjury);
body.replaceText("{{EE Name}}", name);
body.replaceText("{{Location}}", location);
body.replaceText("{{DOI}}", dateOfInjury);
doc.saveAndClose();
}
事件日志可在应用程序脚本的执行选项卡上查看
进一步阅读:
function myFunction(e) {
var reasonForInjury = e.values[0];
var name = e.values[1];
var location = e.values[2];
var dateOfInjury = e.values[3];
var templateFile = DriveApp.getFileById("id");
var templateResponseFolder = DriveApp.getFolderById("id");
var copy = templateFile.makeCopy(name + ", " + location, templateResponseFolder);
var doc = DocumentApp.openById(copy.getId());
var body = doc.getBody()
body.replaceText("{{Reason for Injury}}", reasonForInjury);
body.replaceText("{{EE Name}}", name);
body.replaceText("{{Location}}", location);
body.replaceText("{{DOI}}", dateOfInjury);
doc.saveAndClose();
}