Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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 TypeError:无法读取属性";价值观;从未定义。(第4行,文件“代码”)_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript TypeError:无法读取属性";价值观;从未定义。(第4行,文件“代码”)

Javascript TypeError:无法读取属性";价值观;从未定义。(第4行,文件“代码”),javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我正在使用这个模板向填写表单的人发送电子邮件,问题是每次我尝试运行它时,都会出现此错误 TypeError:无法从未定义中读取属性“值”。(第4行,文件“代码”) 有人能帮我找出问题所在吗 谢谢大家! function emailOnFormSubmit(e) { // Create as many variables as answers (columns in your spreadsheet) you require to send var Timestamp = e.v

我正在使用这个模板向填写表单的人发送电子邮件,问题是每次我尝试运行它时,都会出现此错误

TypeError:无法从未定义中读取属性“值”。(第4行,文件“代码”)

有人能帮我找出问题所在吗

谢谢大家!

function emailOnFormSubmit(e) {

    // Create as many variables as answers (columns in your spreadsheet) you require to send
    var Timestamp = e.values[0];
    var mail = e.values[1];
    var name = e.values[2];
    var Break = e.values[3];


    // The subject of the email
    var subject = "Break time! " + name;

    // emailBody is for those devices that can't render HTML, is plain text
    var emailBody = "Hola " + name + "tu hora de salida es " + Timestamp + "tu hora de regreso es " + Timestamp + time (0,20,0) +
                    "\nFrom " + city + 
                    "\nWith email " + mail + 
                    "\nRegister on " + timestamp +
                    "\n\nThank you for register!"; 

    // html is for those devices that can render HTML
    // nowadays almost all devices can render HTML
    var htmlBody =  "Thank you, your form was submitted on <i>" + timestamp + "</i>" + 
                    "<br/><br/>The details you entered were as follows: " +
                    "<br/>Your Name: <font color=\"red\"><strong>" + name + "</strong></font>" +
                    "<br/>From: " + city + 
                    "<br/>With email: " + mail;

    // More info for Advanced Options Parameters 
    // https://developers.google.com/apps-script/reference/mail/mail-app#sendEmail(String,String,String,Object)
    var advancedOpts = { name: "No reply", htmlBody: htmlBody };

    // This instruction sends the email
    MailApp.sendEmail(mail, subject, emailBody, advancedOpts);

}
功能emailOnFormSubmit(e){
//创建您需要发送的答案(电子表格中的列)的尽可能多的变量
var Timestamp=e.values[0];
var mail=e.values[1];
变量名称=e.values[2];
var Break=e.值[3];
//电子邮件的主题
var subject=“休息时间!”+名称;
//emailBody用于那些不能呈现HTML的设备,是纯文本
var emailBody=“Hola”+name+“tu hora de salida es”+时间戳+“tu hora de regreso es”+时间戳+时间(0,20,0)+
“\n来自”+城市+
“\n通过电子邮件”+邮件+
“\n在”+时间戳上注册+
“\n\n感谢您的注册!”;
//html适用于那些可以呈现html的设备
//现在几乎所有的设备都可以呈现HTML
var htmlBody=“谢谢,您的表格是在“+时间戳+”上提交的”
“

您输入的详细信息如下:”+ “
您的姓名:”+Name+“”+ “
来自:“+city+ “
带有电子邮件:“+邮件; //有关高级选项参数的详细信息 // https://developers.google.com/apps-script/reference/mail/mail-app#sendEmail(字符串,字符串,字符串,对象) var advancedOpts={name:“无回复”,htmlBody:htmlBody}; //此指令发送电子邮件 MailApp.sendmail(邮件、主题、邮件正文、高级选项); }
小上下文:

您的错误为
TypeError:无法从未定义的文件中读取属性“值”。(第4行,文件“Code”)我认为第4行是var Timestamp=e.values[0]

在这一行中,您试图获取在第0个位置的Object
e
中传递的值,错误是Object
e
未定义。当我们试图手动运行函数而不提供它所需的所有参数时,通常会发生这种情况

在这里,根据您提供的信息,这意味着您希望在任何人填写表单时触发此功能,此功能将向此人发送电子邮件。要使此函数正常工作,必须在调用此函数时向其提供Object
e

为什么会出现此错误:

当您试图手动运行它时(通过从下拉列表中选择它并单击“执行”按钮),您没有为它提供所需的参数,即Object
e

建议的解决方案:


基于表单提交创建一个触发器并从那里调用此函数,该触发器将在调用它时提供此参数。我的意思是,无论何时提交任何表单,触发器都会用该响应调用此函数。

将其放在第2行:
console.log(e)将其放在第3行:
console.log(e.values[0])这两个的输出是什么?它给我这个错误消息“TypeError:无法读取未定义的属性“值”。(第3行,文件“代码”)“首先检查它是否存在。如果(e.values[0]){var Timestamp=e.values[0];}您肯定对e有问题,因此您需要首先找出原因,但要消除错误,最好的办法是执行以下操作:让{values=[]}=e;让时间戳=值[0]| |“”;您将返回未定义而不是错误。如果您通过单击“播放”按钮运行脚本,则不会发生任何事件(如果在表单提交时触发脚本,则不会提交表单)。因此,事件对象(e)将是未定义的。