2015-12-18 5 views
5

Ich möchte eines der Antwortfelder im Google-Formular schreibgeschützt oder versteckt machen, damit der Empfänger dieses Formular nicht ändern/sehen kann.Google Formular, Antwortfeld readonly machen

Ist das möglich?

hier ist der Kontext:

Also im Grunde mein Ziel ist Google Forms Funktionalität zu nutzen, Umfragen an Empfänger zu senden und in einem response spreadsheet ihre Antworten zu verfolgen.

So weit so gut ...

Nun lassen Sie mich Sie mir auferlegt zu 2 Einschränkungen vorstellen:

  1. Formulare an Empfänger gesendet werden müssen einige Informationen über den Empfänger bereits vorgefüllter .

  2. Die URL, die jedem Empfänger für den Zugriff auf das Formular zur Verfügung gestellt wird, wird verwendet, um die Antworten, die im Formular bereitgestellt werden, zu übermitteln und später zu aktualisieren.

Siehe die zweite Einschränkung heikel ist ... Die gemeinsame Sache, die ein pre-filled Url dass senden an den Empfänger zu tun ist, zu erzeugen, und wenn sie das Formular beantwortet haben, können Sie eine Bestätigungsseite, wo Sie sie mit einem bieten Edit Url, die sie verwenden können, um dann ihre Antworten zu aktualisieren (mit zuletzt aktualisiert beantwortet bereits vorgefüllt).

In meinem Fall kann ich ihnen keine zweite URL (die Edit Url) bereitstellen. Es ist eine einmalige Sache: Ich stelle für jeden Empfänger eine URL bereit und sie müssen in der Lage sein, dieselbe URL zu verwenden, um die Frage zu beantworten und zu aktualisieren - zu einem späteren Zeitpunkt, wenn sie es brauchen.

Diese Funktionalität wird von Google nicht unterstützt, daher musste ich ein Skript schreiben, das aus einer Tabelle liest, die Daten in jeder Zeile zum Ausfüllen eines bestimmten Formulars verwendet, jedes Formular absenden und dann eine URL für jeden Empfänger erstellen was ich dann in die Spalte "edit url" meiner Tabelle einfüge. Ich kann jetzt die URLs den Empfängern geben und sie können diese URL immer wieder verwenden, um ihre Antworten in der Umfrage zu aktualisieren.

Jetzt zurück zu dem versteckten/readonly Feld. In meiner Tabelle habe ich einen eindeutigen alphanumerischen Wert für jeden Empfänger. Ich möchte, dass dies an das Formular weitergeleitet wird, sodass ich bei der Antwort (die Antworten werden in einer Antworttabelle aufgezeichnet) in der Lage sind, jeden Empfänger anhand dieser eindeutigen "ID" zu identifizieren.

Ich habe hier viel geschrieben, aber ich weiß, dass es wichtig ist, den Menschen einen Kontext zu geben, damit sie sich gegenseitig auf eine präzise und durchdachte Weise helfen können.

+0

Warum möchten Sie das tun? – Mogsdad

+0

@Mogsdad einschließlich eines Felds, das eine ID auf dem Antwortblatt übergibt, ist eine häufige Anforderung, die ich sehe –

+0

Haben Sie vor der Veröffentlichung der Frage irgendwelche Recherchen unternommen, z. B. die [Google Forms-Hilfe] (https://support.google .com/docs # topic = 1360904) und [Formularservicedokumentation] (https://developers.google.com/apps-script/reference/forms/)? Referenz: [fragen] –

Antwort

6

Wie Sie verhindern, dass ein Benutzer Teile des Formulars sieht.

Zuerst erstellen Sie eine erforderliche Frage. Die erforderliche Frage verhindert, dass der Benutzer zur nächsten Seite geht, wenn die Frage nicht beantwortet wird.

Richten Sie die Frage so ein, dass die Antwort auf die Frage NUR dem Benutzer erlaubt, auf die Übergabeseite zu gehen.

Also, Sie haben mindestens 3 Seiten:

  • 1. Seite eingegeben
  • eine Zwischenseite, die
  • letzte Seite versteckt wird, ist die Seite einreichen.

Sie können es einrichten, so dass es für den Benutzer unmöglich ist, zu dieser Zwischenseite zu gelangen. Sie erstellen eine erforderliche Frage, die nur eine Option enthält, um zur Übermittlungsseite zu gelangen.

Und Sie können die erforderliche Frage vorab ausfüllen und haben einen Titel, der besagt: "Nur zu Verwaltungszwecken" oder etwas, das ihnen sagt, dass sie einfach in Bewegung bleiben.

Sie werden auf die Schaltfläche "Weiter" klicken, es überspringt die Seite mit der "verborgenen" Eingabe und geht direkt auf die Seite Übermitteln.

Wenn sie nicht auf die Schaltfläche "Weiter" klicken, aber die Frage beantworten, wird sie auch auf die Übermittlungsseite weitergeleitet, da die Frage auf die Übermittlungsseite gestellt wurde. So oder so, es geht auf die Submit-Seite.

3

Die einzigen Gegenstände, die ein Formular, die nicht für die Erhebung von Daten sind enthalten:

Alle anderen Elemente sind für die Eingabe vorgesehen und können nicht "nur lesen" gemacht werden.

+0

Ich habe versucht, mehr Kontext in meiner Frage zu geben. Danke für die Antwort, das sind lehrreiche Ressourcen. – Cyzanfar

2

Update: Google hat ein Limit von 20 Triggern pro Skript. Dies bedeutet, dass diese Lösung nur in einem Szenario funktioniert, in dem Sie 20 Formularantworten oder weniger generieren.

Schließlich herausgefunden.

Erstellen Sie zuerst ein Formular mit einer Multiple-Choice-Option. In diesem Code wird davon ausgegangen, dass es sich um das erste Element im Formular handelt.

var readonlyValue = 'some unique ID'; 
var form = FormApp.openById('get the ID from the form in edit mode'); 
var formResponse = form.createResponse(); 
items = form.getItems(); 
var readonlyId = items[0].getId(); 
var readonlyItem = form.getItemById(readonlyId); 
readOnlyItem.asMultipleChoiceItem().setChoiceValues([readonlyValue]); 
formResponse.withItemResponse(readonlyItem.asMultipleChoiceItem().createResponse(readonlyValue));  
formUrl = formResponse.submit().toPrefilledUrl(); 
//formUrl, now has a link to the form with your unique value: pre-filled and pre-selected