如何在doPost()中区分提交的源?

时间:2013-07-11 12:30:19

标签: google-apps-script

我有两个或更多表单会触发不同功能中的提交事件。

但我不知道如何将doPost()分成对应于发送事件的每个源的子例程。

我尝试过的以下代码失败了。

//---------------------------------------------------------------------------
function doPost(e) 
{  
  var app = UiApp.getActiveApplication();      

  // 'mainform' is the id of one of the forms with a submit button
  if (e.parameter.source == 'mainform') {
    var fileBlob = e.parameter.thefile;         
    doc = DocsList.getFolder('releaseTmp').createFile(fileBlob);           
  }    
  return app;    
}

1 个答案:

答案 0 :(得分:3)

根据文档:“如果使用表单元素作为参数调用服务器函数,则表单将成为单个对象,其字段名称为键,字段值为值。值全部转换为字符串,但文件输入字段的内容,它们成为Blob对象。“ Html Service: Communicate with Server Functions - Forms

一个选项是在表单中包含一个带有相应名称的隐藏字段,然后在函数中读取该字段。