来自Google表单的所有回复都是问题字符串吗?

时间:2016-07-31 12:52:54

标签: google-apps-script google-form

抱歉,如果这是一个愚蠢的问题。我有一个表单来收集客户的订单,并希望向他们发送一封电子邮件(在表单提交上),详细说明转账到我的银行账户的金额。 e.namedValues ['衬衫的数量'] [0]是一个整数值,我可以操纵,然后通过.toString()函数包含在电子邮件正文中?

function onFormSubmit(e) {
  var name = e.namedValues['Name'][0];
  var email = e.namedValues['Email'][0];
  var shirts = e.namedValues['Number of Shirts'][0];
  var cost = shirts*25; \\$25 per shirt
  sendEmail_(name,email,shirts,cost);
}

1 个答案:

答案 0 :(得分:1)

即使您将验证类型设置为Number,Google表单中提交的字段也会出现问题。

在对字符串执行数学运算之前,您需要将字符串显式地转换为数字。您可以使用Number()parseInt()

执行此操作

您修改后的代码:

function onFormSubmit(e) {
  var name = e.namedValues['Name'][0];
  var email = e.namedValues['Email'][0];
  var shirts = Number(e.namedValues['Number of Shirts'][0]);
  var cost = shirts*25; \\$25 per shirt
  sendEmail_(name,email,shirts,cost);
}

将来,您可以使用typeof进行测试,以确定变量的类型。如:

function onFormSubmit(e) {
  Logger.log(typeof e.namedValues['Number of Shirts'][0]);
}

如果要在字符串中附加数字,或在字符串字段中包含数字,也应该注意。您无需将其强制转换为toString()的字符串。这将隐式执行。