Event object of onSubmit is empty in Google script

匆匆过客 提交于 2021-02-05 07:43:19

问题


I have a Google form linked to a Google sheet. In that spreadsheet I have code that have this

function onSubmit(e){
  Logger.log(e)    
  Logger.log("Call onSubmit")
}

The trigger is setup as follow

Project: Spreadsheet's scritp 
Deployment:Head 
Event:From spreadsheet - On form submit 
Function:onSubmit

So whenever I submit the form, the log shows

[object Object]
Call onSubmit

The form has many questions, not an empty form. As I read the documentation, it seems like the event object has many information. Is there something wrong with my setup? I have resorted to read responses in the data sheets but that's not ideal. Too many things have to call and/or defined manually.


回答1:


The logger is buggy and it is not recommended to rely directly on what you see in the debugger.

Best practices:

  • Always use console class instead of Logger

  • Always JSON.stringify() anything that you're going to log:

    console.log(JSON.stringify(e));
    

The last one should fix your problem. [object Object] is the result of calling toString() on a object, as the logger is incapable to displaying a object directly.

const obj = {a:1};
console.log(obj.toString());//[object Object]
console.log(JSON.stringify(obj));//'{"a":1}'



回答2:


Unlike most browser debuggers, the Google apps script logger will only store basic string values. In most cases, this means that the documentation will be more useful for understanding complex values. In your case, the event object for submit events is quite simple, with a values key for a simple array and a namedValues key for an object lookup of what was submitted.



来源:https://stackoverflow.com/questions/64027590/event-object-of-onsubmit-is-empty-in-google-script

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!