====== JavaScript-Bibliothek SoSciTools ======

SoSci Survey bindet im Fragebogen automatisch eine JavaScript-Bibliothek ''SoSciTools'' ein. Diese kann in [[:de:create:javascript|JavaScripts]] innerhalb des Fragebogens verwendet werden.

===== SoSciTools =====

Folgende statische Methoden stehen durch SoSciTools zur Verfügung:

==== Fragebogen-Elemente ====

  * ''SoSciTools.getForm()'' -- Liefert das HTML-Formularelement ''<form>'' des Fragebogens.
  * ''SoSciTools.disableInputs()'' -- Deaktiviert alle Eingabe- und Auswahlfelder auf der aktuellen Fragebogen-Seite (z.B. um Fragen nochmals anzuzeigen ohne dass der Teilnehmer noch etwas ändert, s. auch [[:de:create:functions:answers]])
  * ''SoSciTools.disableInputs2()'' -- Ersetzt alle Eingabe- und Auswahlfelder durch Grafiken oder Textelemente.

  * ''SoSciTools.questionnaire'' -- Instanz von ''[[#soscitoolsquestionnaire|SoSciTools.Questionnaire]]'' zu Steuerung der Fragebogen-Seite
  * ''SoSciTools.progress'' -- Instanz von ''[[#soscitoolsprogress|SoSciTools.Progress]]'' zu Steuerung des Fortschrittsbalkens


==== Fragebogen-Steuerung ====

  * ''SoSciTools.submitPage()'' -- Die Antworten der aktuellen Seite übermitteln, so als würde der Weiter-Knopf gedrückt.

==== Knöpfe im Fragebogen ====

  * ''SoSciTools.submitButtonsHide()'' -- Weiter- und Zurück-Knopf ausblenden
  * ''SoSciTools.submitButtonsDisplay()'' -- Weiter- und Zurück-Knopf einblenden
  * ''[[:de:create:soscitools:showbuttons|SoSciTools.showButtons()]]'' -- Anzeige von Weiter- und Zurück-Knopf bzw. weiteren Knöpfen (Sprachumschalter, Interview abbrechen, Interview unterbrechen) steuern
  * ''[[:de:create:soscitools:submitbuttonenable|SoSciTools.submitButtonEnable()]]'' -- Den Weiter-Knopf aktiv oder inaktiv (disabled) schalten

==== Allgemeine Hilfsfunktionen ====

  * ''[[:de:create:soscitools:attachevent|SoSciTools.attachEvent()]]'' -- Weist einem oder mehreren JavaScript-Ereignissen (Events) eine Funktion zu (browserübergreifend)
  * ''[[:de:create:soscitools:attacheventtoform|SoSciTools.attachEventToForm()]]'' -- Weist jeglicher Änderung innerhalb der Fragebogen-Seite eine Funktion zu (browserübergreifend)
  * ''[[:de:create:soscitools:detachevent|SoSciTools.detachEvent()]]'' -- Löst eine vorher zugewiesene Funktion von einem JavaScript-Ereignis (browserübergreifend)
  * ''[[:de:create:soscitools:dispatchevent|SoSciTools.dispatchEvent()]]'' -- Löst ein JavaScript-Ereignis aus (browserübergreifend)
  * ''[[:de:create:soscitools:getsender|SoSciTools.getSender()]]'' -- Ermittelt das Ursprungsobjekt eines JavaScript-Ereignisses (browserübergreifend)
  * ''[[:de:create:soscitools:inarray|SoSciTools.inArray()]]'' -- Prüft, ob ein Element in einem Array enthalten ist (browserübergreifend)
  * ''[[:de:create:soscitools:recordtime|SoSciTools.recordTime()]]'' -- zeichnet die Bearbeitungszeit in einer interne Variable auf.


===== SoSciTools.Questionnaire =====

Die Variable ''SoSciTools.questionnaire'' beherbergt ein Objekt der Klasse ''SoSciTools.Questionnaire''. Das Objekt unterstützt folgende Methoden:

  * ''[[:de:create:soscitools:questionnaire:attachcheck|attachCheck()]]'' -- Registriert eine Funktion zur Prüfung der Eingabe. Die Funktion wird aufgerufen, wenn der Teilnehmer den Weiter-Knopf verwendet.
  * ''submit()'' -- Die Antworten der aktuellen Seite übermitteln, so als würde der Weiter-Knopf gedrückt.

===== SoSciTools.Progress =====

Die Variable ''SoSciTools.progress'' enthält ein Objekt der Klasse ''SoSciTools.Progress'' und unterstützt die folgenden Methoden:

  * ''[[:de:create:soscitools:progress:addeventlistener|addEventListener()]]'' -- Registriert eine Funktion für die Ereignisse '''present''' oder '''change'''.
  * ''[[:de:create:soscitools:progress:set|set()]]'' -- Ändert den angezeigten Prozentwert. Anders als die PHP-Funktion ''[[:de:create:functions:option|option('progress', ...)]]'' hat dies keinen Einfluss auf den Prozentwert, der auf der nachfolgenden Seite angezeigt wird.