2017-02-27 1 views
1

Ich habe ein Formular mit mehreren Schaltflächen, und nach dem Senden des Formulars möchte ich, dass das serverseitige Skript die Werte der angeklickten Schaltflächen lesen kann.Wie kann ich den Wert einer Schaltfläche in ein Formularobjekt aufnehmen?

// someButton is created and appended inside an HTML form element 
someButton.name = "foo"; 
someButton.onclick = function() { 
    this.value = "bar"; 
} 

// more code 

document.querySelector("button[class='submit']").onclick = function() { 
    google.script.run.processForm(document.querySelector("form")); 
} 

In dem obigen Code, das Element durch someButton referenziert wird in einem form verschachtelt. Auch sollte es ziemlich klar sein, aber someButton ist eine beliebige button, die sich von der Schaltfläche in .querySelector() unterscheidet.

Als ich voran gehen und zerlegen das Formularobjekt aus der Server-Seite einen Code wie folgt aus:

function processForm(form) { 
    for (var thing in form) 
    Logger.log(var + ": " + form[var]); 
} 

Keine der Tasten sind überall zu finden sind. Warum?

Antwort

1

Der Wert der Schaltfläche wird nicht mit dem Formular übermittelt. Sie können es als zweiten Parameter an Ihre processForm -Methode übergeben:

document.querySelector("button[class='submit']").onclick = function() { 
    google.script.run.processForm(document.querySelector("form"), document.getElementById("someButton").value); 
} 

function processForm(form, buttonvalue) { 
    Logger.log(buttonvalue); 
} 
Verwandte Themen