Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多个表单触发到单个表单_Javascript_Google Apps Script_Google Sheets_Google Forms - Fatal编程技术网

Javascript 多个表单触发到单个表单

Javascript 多个表单触发到单个表单,javascript,google-apps-script,google-sheets,google-forms,Javascript,Google Apps Script,Google Sheets,Google Forms,我有一个谷歌电子表格,它从两种不同的形式获取信息 在“触发器”菜单中选择“OnFormSubmit”时,使用电子表格UI手动触发无法区分指定的表单 因此,我使用以下代码(用于我的工作表)管理两个不同表单提交的两个不同触发事件: function onOpen(e) { var form = FormApp.openById('ID of Form 1'); ScriptApp.newTrigger('onForm1Submit') .forForm(form) .onF

我有一个谷歌电子表格,它从两种不同的形式获取信息

在“触发器”菜单中选择“OnFormSubmit”时,使用电子表格UI手动触发无法区分指定的表单

因此,我使用以下代码(用于我的工作表)管理两个不同表单提交的两个不同触发事件:

function onOpen(e) {


var form = FormApp.openById('ID of Form 1');
 ScriptApp.newTrigger('onForm1Submit')
     .forForm(form)
     .onFormSubmit()
     .create();


var signup = FormApp.openById('[ID of Form 2]');
signup.setRequireLogin(true)
 ScriptApp.newTrigger('SignUpEvent')
     .forForm(signup)
     .onFormSubmit()
     .create();
}      
function SignUpEvent(e) {
\\stuff
}

function onForm1Submit(e) {
\\stuff
}
但当我这样做时,我会收到表单提交失败通知:

函数:UpdateLadder

错误消息:“执行该操作需要授权。”

触发器:“formSubmit”

首先,我是如何接收这些电子邮件通知的?我没有手动请求错误消息的电子邮件通知。
其次,我获得“授权”的最佳方式是什么?

我有理由肯定onFormSubmit将一个电子表格与一个表格联系起来;它不知道如何处理两个onFormSubmit触发器

对于
onFormSubmit()
函数,您可以编写代码将目标工作表与某个函数相匹配。例如,我有一个电子表格,它有两个表单,其中都有用于目标的表单。在
onFormSubmit()
触发器代码中,我做了如下操作:

function onFormSubmit(e) {
  Logger.log("[METHOD] onFormSubmit");
  var sheet = e.range.getSheet();
  var sheetId = sheet.getSheetId();
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var student = ss.getSheetByName("Student Requests");
  var studentId = student.getSheetId();
  var teacher = ss.getSheetByName("Teacher Requests");
  var teacherId = teacher.getSheetId();
  if (sheetId == studentId){
    sendStudentEmail(e.range);
  }
  if (sheetId == teacherId){
    sendTeacherEmail(e.range)
  } 
} 

因此,在本例中,教师可以使用表单进行请求,如果
onFormSubmit
与教师表单相关,则发送教师电子邮件,等等。

这里是我的想法:你认为Sandy Good给出的答案无效吗?如果问题是我一次只能有一张纸,那么我可以在哪张纸连接到一张纸之间切换吗?在每次表单提交事件中,我更改表单触发到的表单如何?