L'objet d'événement de onSubmit est vide dans le script Google
J'ai un formulaire Google lié à une feuille Google. Dans cette feuille de calcul, j'ai du code contenant ceci
function onSubmit(e){
Logger.log(e)
Logger.log("Call onSubmit")
}
Le déclencheur est configuré comme suit
Project: Spreadsheet's scritp
Deployment:Head
Event:From spreadsheet - On form submit
Function:onSubmit
Ainsi, chaque fois que je soumets le formulaire, le journal montre
[object Object]
Call onSubmit
Le formulaire comporte de nombreuses questions, pas un formulaire vide. En lisant la documentation, il semble que l'objet événement contienne de nombreuses informations. Y a-t-il un problème avec ma configuration? J'ai eu recours à la lecture des réponses dans les fiches techniques mais ce n'est pas idéal. Trop de choses doivent être appelées et / ou définies manuellement.
Réponses
L'enregistreur est bogué et il n'est pas recommandé de se fier directement à ce que vous voyez dans le débogueur.
Les meilleures pratiques:
Utilisez toujours la
consoleclasse au lieu deLoggerToujours
JSON.stringify()tout ce que vous allez enregistrer:console.log(JSON.stringify(e));
Le dernier devrait résoudre votre problème. [object Object]est le résultat de l'appel toString()à un objet, car l'enregistreur est incapable d'afficher directement un objet.
const obj = {a:1};
console.log(obj.toString());//[object Object]
console.log(JSON.stringify(obj));//'{"a":1}'
Contrairement à la plupart des débogueurs de navigateur, le journal de script des applications Google ne stockera que les valeurs de chaîne de base. Dans la plupart des cas, cela signifie que la documentation sera plus utile pour comprendre des valeurs complexes. Dans votre cas, l' objet événement pour les événements de soumission est assez simple, avec une valuesclé pour un tableau simple et une namedValuesclé pour une recherche d'objet de ce qui a été soumis.