Dies ist eine alte Version des Dokuments!
Die Texteingabe-Fragen unterstützen unterschiedliche Anwendungsfälle:
Unter anderem verwendet SoSci Survey JavaScript, um etwa die erlaubten Zeichen (Ziffern, Buchstaben, etc.) zu begrenzten. Mittels JavaScript kann das Verhalten einzelner Eingabelfelder weiter angepasst werden.
Mithilfe der JavaScript-Bibliothek SCEditor (in SoSci Survey automatisch verfügbar) können Sie Textfelder so verändern, dass der Teilnehmer – ähnlich wie in einer Textverarbeitung – den Text formatieren kann. Etwa Wörter unterstreichen, Emoticons einfügen, etc.
Erstellen Sie zunächst eine Frage vom Typ „Offene Texteingabe“ mit mehrzeiligem (!) Texteingabefeld. Um ein mehrzeiliges Eingabefeld zu erhalten, tragen Sie eine Höhe (z.B. 120 Pixel) für das Eingabefeld ein.
Fügen Sie diese Frage unter Fragebogen zusammenstellen auf der passenden Seite in den Fragebogen ein.
Platzieren Sie auf derselben Fragebogen-Seite folgenden PHP-Code, um den SCEditor zu laden:
option('script', 'jQuery1.x'); option('script', 'SCEditor');
Legen Sie unter Textbausteine und Beschriftungen einen neuen Textbaustein (z.B. mit der Kennung „jsSCEditor“ und Typ „HTML-Code“) mit folgendem Inhalt an:
<script type="text/javascript"> <!-- $(function() { // Replace all textarea's // with SCEditor $("textarea").sceditor({ plugins: "xhtml", toolbar: "bold,italic,underline", emoticonsRoot: "../plugins/SCEditor/", style: "../plugins/SCEditor/minified/jquery.sceditor.default.min.css" }); }); // --> </script>
Diesen Textbaustein fügen Sie ebenfalls unter Fragebogen zusammenstellen auf der Fragebogen-Seite ein – und zwar unterhalb der Textfrage. Der JavaScript-Code sorgt dafür, dass alle mehrzeiligen Texteingabefelder (<textarea>
) Formatierungen erlauben. Um nur ein einzelnes Eingabefeld zu verändern, würden Sie im JavaScript-Code $(„textarea“)
durch $(„#AB01_01“)
ersetzen, wobei „AB01_01“ die Kennung des Texteingabefelds ist.
Sie können detailliert festlegen, welche Formatierungen der Editor bereitstellt. Dafür wird v.a. die Zeile toolbar: …
angepasst. Details finden Sie in der Dokumentation des SCEditors.
Sie können die Anzahl der Zeichen pro Texteingabefeld begrenzen, wenn Sie das Eingabefeld im Fragenkatalog auswählen.
Mit ein wenig JavaScript können Sie für ein Texteingabefeld auch anzeigen, wie viele Zeichen der Teilnehmer bereits geschrieben hat – oder wie viele noch geschrieben werden dürfen? Erstellen Sie unter Textbausteine und Beschriftung einen Textbaustein (z.B. mit der Kennung „jsCountChars“, Typ „HTML-Code“) mit folgendem Inhalt:
<script type="text/javascript"> <!-- function addCounter(textID, displayID, limit) { if (limit) { limit = parseInt(limit); } var input = document.getElementById(textID); if (!input) { alert("Kein Textbaustein mit der Kennung " + textID + " gefunden"); return; } var display = document.getElementById(displayID); if (!display) { alert("Kein Element mit der Kennung " + displayID + " gefunden"); return; } // Funktion zum Zählen und Anzeigen des Wertes function refresh() { var s = input.value.replace(/\r\n/g, "\r").replace(/\r/g, "\n"); var res = s.length; if (limit) { res = limit - res; } // Inhalt des Anzeigeelements löschen while (display.lastChild) { display.removeChild(display.lastChild); } // Text zum Anzeigen var cnt = document.createTextNode(res); display.appendChild(cnt); } // Länge ggf. begrenzen if (limit) { SoSciTools.checkChars(textID, "", limit); } // Bei jeder Änderung des Textfelds aktualisieren SoSciTools.attachEvent(input, ["change","keyup"], refresh); // Beim Laden aktualisieren refresh(); } // Textfeld registrieren addCounter("%text%", "%display%", "%limit%"); // --> </script>
Platzieren Sie die Texteingabefrage unter Fragebogen zusammenstellen auf einer Seite des Fragebogens.
Weiterhin müssen Sie ein HTML-Tag auf der Seite platzieren, an dessen Stelle die Anzahl der Zeichen angezeigt werden soll. Dies kann etwa direkt im Fragetext sein, in der Beschriftung des Eingabefeldes oder als Textbaustein unter dem Eingabefeld. Das HTML-Element kann etwa wie folgt aussehen:
(<span id="AB01_01chars">-</span> Zeichen)
Die Kennung bei id
können Sie frei wählen. Sie muss innerhalb der Seite aber eindeutig sein und darf nicht mit der Kennung eines Items oder einer Frage übereinstimmen (also z.B. nicht nur AB01_01
).
Anschließend binden Sie den Textbaustein mittels folgendem PHP-Code in den Fragebogen ein – und zwar unterhalb der Texteingabe-Frage und ggf. unterhalb des Elements, welches das HTML-Tag enthält.
text('jsCountChars', array( '%text%' => 'AB01_01', // Hier die Kennung des Texteingabefelds eintragen '%display%' => 'AB01_01chars', // Hier die Kennung des HTML-Elements zur Anzeige der Zeichen '%limit%' => 20 // Hier ggf. die Anzahl erlaubter Zeichen, sonst 0 ));
Falls Sie für den Textbaustein eine andere Kennung als „jsCountChars“ verwendet haben, müssen Sie die erste Zeile entsprechend anpassen. In den folgenden Zeilen tragen Sie die Kennung des Eingabefelds, des HTML-Tags und ggf. die Anzahl der zulässigen Zeichen ein.