Javascript TypeError:无法读取属性";0“;从onFormSubmit未定义(代码:34)
这应该是基于表单发送电子邮件。但是,不会发送电子邮件,并且会弹出此错误: TypeError:无法从未定义中读取属性“0” 我已将产生错误的行加粗(**)。请注意,我没有编码经验,所以请尝试使用基本术语解释我应该做什么。 在onFormSubmit(代码:34)Javascript TypeError:无法读取属性";0“;从onFormSubmit未定义(代码:34),javascript,Javascript,这应该是基于表单发送电子邮件。但是,不会发送电子邮件,并且会弹出此错误: TypeError:无法从未定义中读取属性“0” 我已将产生错误的行加粗(**)。请注意,我没有编码经验,所以请尝试使用基本术语解释我应该做什么。 在onFormSubmit(代码:34) 问题是响应['Email Address']为空/未定义 解决此问题的最佳方法是检查响应,并查看对象的外观。若你们粘贴完整的回应片段,我可以更好地回答你们的问题。如果不知道那个物体看起来像什么,就很难给你一个确切的答案 如果您不确定如何
问题是
响应['Email Address']
为空/未定义
解决此问题的最佳方法是检查响应
,并查看对象的外观。若你们粘贴完整的回应片段,我可以更好地回答你们的问题。如果不知道那个物体看起来像什么,就很难给你一个确切的答案
如果您不确定如何确定对象是什么,您可以通过执行console.log(response)
下面是正在发生的事情的一个例子:
const nothing=未定义;
console.log(无[0])代码>尝试console.log(响应)并观察它是否具有您想要的所有属性
时间戳[0]是数组吗?
还有“电子邮件地址”?
其他属性也是如此
您编写了错误,但我认为在这行错误之上,您可以确切地看到属性是如何未定义的
映射正确的未定义属性后,您可以从请求中删除为什么返回未定义的错误。错误意味着响应
对象中没有电子邮件地址
属性。使用控制台.log(responses)
查看正确的属性名称。发现问题是因为我有“电子邮件地址”在响应表单和代码中的“电子邮件地址”中。那么我是否要将console.log(响应)复制到代码中并运行它?“电子邮件地址”应该链接到谷歌表单和谷歌表单文档,它基于以下内容:
var responses = e.namedValues;
// If the question title is a label, it can be accessed as an object field.
// If it has spaces or other characters, it can be accessed as a dictionary.
var timestamp = responses.Timestamp[0];
**var email = responses['Email Address'][0].trim();**
var name = responses.Name[0].trim();
var topicsString = responses.Topics[0].toLowerCase();
// Parse topics of interest into a list (since there are multiple items
// that are saved in the row as blob of text).
var topics = Object.keys(topicUrls).filter(function(topic) {
// indexOf searches for the topic in topicsString and returns a non-negative
// index if the topic is found, or it will return -1 if it's not found.
return topicsString.indexOf(topic.toLowerCase()) != -1;
});```