2016-07-31 17 views
1

對不起,如果這是一個愚蠢的問題。我有一個表格來收集客戶的訂單,並希望向他們發送一封電子郵件(在表格提交中),詳細說明要將多少錢轉入我的銀行帳戶。 e.namedValues ['襯衫的數量] [0]是一個整數值,我可以操縱,然後通過.toString()函數包含在電子郵件正文中?是否所有來自Google的回覆均形成文本問題字符串?

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); 
} 
+0

嗨jh4,你能否提供一些我們能夠涉及的代碼片段? – Eugene

+1

你可以測試分配給一個變量的數據類型,例如:'var dollarValue; dollarValue = e.namedValues ['襯衫數量] [0]; if(typeValue ==='number'){dollarValue = dollarValue.toString()};'[Data Type information](http://www.w3schools.com/js/js_datatypes.asp) –

+0

@Eugene I'已添加到代碼中。 sendEmail_是一個函數,用於創建電子郵件,詳細說明訂購襯衫的數量和客戶的成本。 – jh4

回答

1

即使您的驗證類型設置爲Number,Google窗體中提交的字段仍然是stings。

在執行數學運算之前,您需要將字符串明確地轉換爲數字。你可以用​​或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()的字符串。這將隱式執行。

+0

謝謝!我可以澄清,如果我想打印「感謝您訂購5件T恤衫」,我可以使用'感謝您訂購'+ 5件'T恤衫'? – jh4

相關問題