0 votes
in SoSci Survey (dt.) by s195165 (150 points)
closed by SoSci Survey

Ich habe folgendes Problem: Nach Beendigung der Befragung erhebe ich Kontaktdaten mit der Funktion "Kontaktdaten getrennt erheben". Allerdings kann in dieser Frage nicht eingestellt werden, dass der "Weiter"-Button nicht weiter führt, wenn keine der Optionen gewählt wurde. Eine Erinnerung, dass etwas ausgefüllt werden muss, erscheint erst, wenn mit einer aktivierten Checkbox auf "Weiter" geklickt wird. Ich möchte nun gern vermeiden, dass zur Teilnahme am Gewinnspiel berechtigte Teilnehmerinnen aus Versehen auf "Weiter" klicken und auf der End-Seite landen, ohne ihre Daten eintragen zu können. Dafür wäre es aus meiner Sicht ideal, wenn der Weiter-Button erst dann erscheint, wenn eine Checkbox ausgewählt wurde (analog zum Mail-Eingabe-Feld), da es ja auch keinen Sinn ergibt, an der Stelle weiter zu klicken, wenn man nicht* am Gewinnspiel teilnehmen oder Infos haben möchte (Die eigentliche Befragung ist bereits abgeschlossen).
Nun habe ich bereits etwas im Forum und im Handbuch nachgelesen und also folgenden JavaScript-Code unter der Kontaktdaten-Frage auf der Seite platziert:

 <script type="text/javascript">
    var optionLottery = document.getElementById("KD01_lottery");
    var optionInfo = document.getElementById("KD01_information");
    function toggle() {
        if (optionLottery.checked || optionInfo.checked) {
        submit0.style.display = "";
        } else {
        submit0.style.display = "none";
        }
    }
    SoSciTools.attachEvent(optionLottery, "click", toggle);
    SoSciTools.attachEvent(optionInfo, "click", toggle);
    toggle();
    </script>

Allerdings erscheint der "Weiter"-Button bei Aufruf der Seite noch immer normal und verschwindet erst, wenn man eine der Checkboxes angewählt hat und dann wieder abwählt. Wo liegt hier mein Fehler? Über Hilfe wäre ich sehr dankbar!
Beste Grüße

closed with the note: Problem gelöst, s. Kommentare :)
by SoSci Survey (309k points)
Was sagt denn die JavaScript-Fehlerkonsole?
https://www.soscisurvey.de/help/doku.php/de:general:browser-tools

Ersetzen Sie den Aufruf toggle() in der letzten Zeile mal wie folgt:

window.addEventListener("load", function() {
    toggle();
});

Zu dem Zeitpunkt, wenn Ihr Script läuft, gibt es den Weiter-Knopf ja noch gar nicht.
by s195165 (150 points)
Danke für die Rückmeldung! Ich habe mir in der Zwischenzeit ausgeholfen, indem ich in der Funktion stattdessen SoSciTools.submitButtonsDisplay(); bzw. Hide(); verwendet habe. Der Zurück-Button ist in dem Moment egal, da er ohnehin über PHP deaktiviert ist. So funktioniert alles wie es soll.

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...