2016-03-29 8 views
0

Ich habe ein Google Form mit einem Textfeld innen.GAS Feld vor Beitrag auswerten Google Formular

Ich möchte den Inhalt, der vom Endbenutzer eingegeben wurde, vor der Post bewerten, aber nach ein paar Tagen der Suche konnte ich es nicht tun.

In der code.gs kann ich auf das Textfeld zugreifen und die Eigenschaften davon abrufen. Wenn Sie die sdi.html sehen, löst dies den Aufruf der Funktion doEval() aus.

Mein Problem ist, dass ich nicht weiß, wie Sie einen Handler im Google Formular selbst hinzufügen, damit ich überprüfen kann, ob der Inhalt des Textfelds für meine App akzeptabel ist. Zum Beispiel: validiere es, wenn es sich um eine Zahl handelt, und wenn dies zutrifft, dann sende das Formular ab, andernfalls beende den Sendeprozess und zeige eine Fehlermeldung an.

Auf alten Google Formulare gab es Möglichkeiten, Handler zu erstellen, aber jetzt funktioniert alles unter HtmlService Ansatz, und ich sehe keine Beispiele dafür, wie es geht.

Hier ist mein Code:

code.gs:

function doGet() 
{ 
    return HtmlService.createHtmlOutputFromFile('sdi') 
    .setSandboxMode(HtmlService.SandboxMode.IFRAME); 
} 

function doEval() 
{ 
    var frm = FormApp.getActiveForm(); 
    var items = frm.getItems(); 
    var text= items[1].asTextItem(); 
    text.setTitle("I can access the field from here!"); 
} 

sdi.html:

<!DOCTYPE html> 
<html> 
<head> 
<script> 
    function onSuccess(isOk) 
    { 
    } 

    google.script.run.withSuccessHandler(onSuccess) 
     .doEval(); 
</script> 
</head> 
<body> 
</body> 
</html> 
+0

Gibt es eine Schaltfläche in der Form, die sie einreichen? Sie können 'typeof' verwenden, um den Datentyp des Werts zu testen. Im Moment befindet sich 'google.script.run.' nicht in einer Funktion. Wenn Sie es in eine Funktion einfügen, können Sie entweder 'google.script.run' ausführen oder nicht. –

+0

Was Sie zeigen, ist kein Google-Formular. es ist eine Webapp. –

+0

Hi, ja du hast Recht, ich habe anfangs falsch gearbeitet, es ist Form, aber ich zeige es nie. Bitte überprüfen Sie die Antwort, die ich gerade zu Spencer Easton gemacht habe, wo ich besser erkläre. Prost. –

Antwort

0

Sie können mit conditionals die Eingabe eines Benutzers auf einem Goolge validieren. Hier ist eine sehr nette Referenz: https://support.google.com/docs/answer/3378864?hl=en

Es gibt keine Möglichkeit, ein Skript innerhalb des Live-Formulars auszuführen. Sie können nur auf Formulareinreichungen antworten.

Ich bin verwirrt von Ihrem Code, da es aussieht, als ob Sie versuchen, eine Webanwendung zu verwenden, um das Formular zu validieren. Dies wird nicht funktionieren. Verwenden Sie den Skript-Editor, der an Ihr Formular angehängt ist. Dort können Sie den Code schreiben, den Sie für die Formularübergabe benötigen. Überprüfen Sie die Formulare Scripting Schnellstart aus:

https://developers.google.com/apps-script/quickstart/forms

+0

Thx beim Antworten. Ich verwende neue Google-Formulare, für die noch keine Konditionen verfügbar sind. Zweitens benutze ich den Skript-Editor, hier habe ich 'code.gs' geschrieben, und ich habe an mein Google Formular angehängt. Eigentlich ist der Grund meiner Frage, wie (mit dem Script Editor) ich auf das Formular zugreife, bevor ich absende ?, um entweder die vom Endnutzer eingegebenen Daten zu validieren oder nicht, dann kann ich auf submit reagieren oder nicht einreichen. Bitte im Voraus. –