【发布时间】:2014-07-31 09:25:11
【问题描述】:
我有一些非常简单的代码,它由要求 2 个电子邮件地址的 google 表单(请参阅http://goo.gl/lFHi3j)触发。当电子邮件地址被硬编码时,代码工作正常(请参阅下面的注释电子邮件)但是当我尝试使用 e.values 获取电子邮件时(提交表单时)得到以下错误
执行失败:TypeError:无法从未定义中读取属性“1”。 (第 3 行,文件“代码”)。
我搜索了这个论坛,但找不到解决这个问题的方法。谁能帮忙。
function onFormSubmit (e) {
// var email_address_ = "pian1966@gmail.com";
var email_address_ = e.values[1];
// Send the email
var subject_ = "Andy's Report";
var body_ = "Here is Andy's report...";
MailApp.sendEmail(email_address_, subject_, body_, {htmlBody: body_});
}
【问题讨论】:
-
错误的哪一部分你不明白?你为什么期望
e.values存在? -
我假设 (e) 是一个事件......这意味着 e.target 将包含表单......但它仍然不仅仅是会给你“价值”......如果你引用特定字段然后使用
var email_address_ = document.getElementById('unique_id_for_email_address_field').value; -
感谢您的 cmets - 我认为 e.values 会存在,因为我正在寻找的电子邮件地址是由用户在表单中提供的。我认为当按下“提交”时,将触发此脚本,并且 e.values 将包含用户在表单中提供的所有输入。这不是与以前版本的 Google 表单一起使用的方式吗?
-
尝试将
console.dir(e)作为onFormSubmit中的第一条语句,以了解它采用哪种形式。
标签: javascript typeerror