2016-07-31 22 views
1

Entschuldigung, wenn das eine dumme Frage ist. Ich habe ein Formular, um Bestellungen von Kunden zu sammeln, und möchte ihnen eine E-Mail senden (bei der Einreichung des Formulars), die detailliert beschreibt, wie viel auf mein Bankkonto überwiesen werden muss. Wird e.namedValues ​​['Anzahl der Shirts'] [0] ein ganzzahliger Wert sein, den ich manipulieren kann und dann über die Funktion .toString() in den E-Mail-Text aufnehmen kann?Sind alle Antworten von Google Formular-Strings für Textfragen?

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

Hi jh4, Könnten Sie bitte ein Code-Snippet bereitstellen, auf das wir uns beziehen können? – Eugene

+1

Sie können den Typ der Daten testen, die einer Variablen mit 'type' Beispiel zugewiesen sind:' var dollarValue; dollarValue = e.namedValues ​​['Anzahl der Shirts'] [0]; if (type of dollarValue === 'number') {dollarValue = dollarValue.toString()}; '[Datentypinformationen] (http://www.w3schools.com/js/js_datatypes.asp) –

+0

@Eugene I ' Ich habe den Code hinzugefügt. sendEmail_ ist eine Funktion, die die E-Mail erstellt, die die Anzahl der bestellten Shirts und die Kosten für den Kunden angibt. – jh4

Antwort

1

Die eingereichten Felder aus einem Google-Formular sind Stacheln, auch wenn Sie den Validierungstyp Number gesetzt haben.

Sie müssen die Zeichenfolge explizit in eine Zahl umwandeln, bevor Sie mathematische Operationen ausführen. Sie können dies tun, mit Number() oder parseInt()

Ihrem überarbeiteten Code:

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

In Zukunft können Sie testen diese typeof wird mit dem Typ einer Variablen zu bestimmen. Wie zum Beispiel:

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

Es ist auch gut zu beachten, dass, wenn Sie eine Zahl in einen String anhängen oder eine Zahl in einem String-Feld enthält. Sie müssen es nicht in eine Zeichenfolge mit toString() umwandeln. Dies wird implizit durchgeführt.

+0

danke! Kann ich erklären, dass, wenn ich "Danke für das Bestellen von 5 T-Shirts" drucken möchte, ich "Danke für das Bestellen" + 5 + "T-Shirts" verwenden könnte? – jh4