Apps 脚本 onFormSubmit 触发器
Apps script onFormSubmit trigger
我在 Google 表单的末尾有以下代码。表单中的第一个值是一个字符串,我试图将其用作将要创建的文件的名称。自己提交假表格只是想测试一下。我知道触发器本身是基于我的第一行代码(现在已注释掉)工作的。我正在尝试解决问题。
Function onFormSubmit(e) {
// this line works var NewSpreadSheets = SpreadsheetApp.Create("testing");
var AnswerObject = e.namedValues;
var DirectoryName = AnswerObject[0][0]; //toString() necessary??
if (DirectoryName) {
var ssNew = SpreadsheetApp.create("Empty");
ssNew.getRange('A1').setValue(DirectoryName);
}
编辑:如果我尝试 AnswerObject['Directory'][0]
同样的事情会发生。
代码没有响应 if
语句,并且在对放置我知道会起作用的代码行进行一些其他测试后,我的 e.namedValues
对象似乎出了问题。任何帮助解决问题都会很棒。
变量 AnswerObject 就像您将其命名为 object 您不会访问具有索引但具有名称的对象内容。
您需要将 DirectoryName 设置为您感兴趣的问题的名称。
例如:我的表单问题之一是 "name of the directory" 所以我将这样设置 directoryName:var DirectoryName = AnswerObject["name of the directory"]
您还应该使用 Logger.log()
检查发生了什么,这会节省您的时间,比在电子表格中写东西更有效
JS 变量中的最后一件事以小写字母开头,它不会破坏您的代码,但这是一种约定(与 'function' 相同)
function onFormSubmit(e) {
Logger.log(JSON.stringify(e));
var AnswerObject = e.namedValues;
Logger.log(AnswerObject);
var directoryName = AnswerObject[0];
Logger.log(directoryName); // this is undefined as there is nothing at the index 0
//var DirectoryName = AnswerObject[0][0]; //toString() necessary??
if (directoryName) {
Logger.log("in it"); // never triggered
var ssNew = SpreadsheetApp.create("Empty");
ssNew.getRange('A1').setValue(directoryName);
}
}
我在 Google 表单的末尾有以下代码。表单中的第一个值是一个字符串,我试图将其用作将要创建的文件的名称。自己提交假表格只是想测试一下。我知道触发器本身是基于我的第一行代码(现在已注释掉)工作的。我正在尝试解决问题。
Function onFormSubmit(e) {
// this line works var NewSpreadSheets = SpreadsheetApp.Create("testing");
var AnswerObject = e.namedValues;
var DirectoryName = AnswerObject[0][0]; //toString() necessary??
if (DirectoryName) {
var ssNew = SpreadsheetApp.create("Empty");
ssNew.getRange('A1').setValue(DirectoryName);
}
编辑:如果我尝试 AnswerObject['Directory'][0]
同样的事情会发生。
代码没有响应 if
语句,并且在对放置我知道会起作用的代码行进行一些其他测试后,我的 e.namedValues
对象似乎出了问题。任何帮助解决问题都会很棒。
变量 AnswerObject 就像您将其命名为 object 您不会访问具有索引但具有名称的对象内容。
您需要将 DirectoryName 设置为您感兴趣的问题的名称。
例如:我的表单问题之一是 "name of the directory" 所以我将这样设置 directoryName:var DirectoryName = AnswerObject["name of the directory"]
您还应该使用 Logger.log()
检查发生了什么,这会节省您的时间,比在电子表格中写东西更有效
JS 变量中的最后一件事以小写字母开头,它不会破坏您的代码,但这是一种约定(与 'function' 相同)
function onFormSubmit(e) {
Logger.log(JSON.stringify(e));
var AnswerObject = e.namedValues;
Logger.log(AnswerObject);
var directoryName = AnswerObject[0];
Logger.log(directoryName); // this is undefined as there is nothing at the index 0
//var DirectoryName = AnswerObject[0][0]; //toString() necessary??
if (directoryName) {
Logger.log("in it"); // never triggered
var ssNew = SpreadsheetApp.create("Empty");
ssNew.getRange('A1').setValue(directoryName);
}
}