0 votes
in SoSci Survey (dt.) by s150563 (140 points)

Liebes Sosci-Survey Team,

ich habe bei einer Frage 3 Schieberegler, deren Summe zwischen 95% und 105% liegen soll. Wenn diese Bedingung nicht erfüllt ist, sollte ein Alert erscheinen und darauf hinweisen.
Zur Überprüfung der Summe habe ich versucht, attachCheck() zu verwenden. Wenn die Bedingung nicht erfüllt ist, funktioniert alles. Aber wenn die Bedingung tatsächlich erfüllt ist, funktioniert der Code nicht. Könnten Sie mir weiterhelfen?

<script type="text/javascript">
window.addEventListener("load", function() {

var x1, x2, x3;
var NichtBekannt = document.getElementById("UI09_03");
var slider1 = SoSciSliders.getSlider("UI10_01");
var slider2 = SoSciSliders.getSlider("UI10_02");
var slider3 = SoSciSliders.getSlider("UI10_03");

document.getElementById("UI09_03").addEventListener("click", Regleractivator);



SoSciTools.questionnaire.attachCheck(function() {
    if(NichtBekannt.checked == false){
        x1 = slider1.value;
        x2 = slider2.value;
        x3 = slider3.value;
        if(x1 + x2 + x3 < 95 || x1 + x2 + x3 > 105) {
            alert("Frage 2: Die Summe entspricht nicht 100%.");
        };
    } else {
        submit();
    }
});

function Regleractivator() {
    if (NichtBekannt.checked) {
        slider1.disabled = true;
        slider2.disabled = true;
        slider3.disabled = true;
    } else {
        slider1.disabled = false;
        slider2.disabled = false;
        slider3.disabled = false; 
    }
}
});
</script>

P.s. es gibt eine "Nicht bekannt" Option. Wenn sie gewählt ist, sind die Regler deaktiviert und da sollte man beim Clicken auf "weiter" auch weitergehen können.
Pretest:
https://www.soscisurvey.de/mehrwertbefragung/?act=PvN2SDE29eyevvsU6CBazh9h
(Frage 2)

Vielen Dank im Voraus.

1 Answer

+1 vote
by SoSci Survey (304k points)
selected by s150563
 
Best answer

Lassen Sie Ihre Frage bitte noch ein true oder false zurückgeben:

SoSciTools.questionnaire.attachCheck(function() {
    if (NichtBekannt.checked == false){
        x1 = slider1.value;
        x2 = slider2.value;
        x3 = slider3.value;
        if(x1 + x2 + x3 < 95 || x1 + x2 + x3 > 105) {
            alert("Frage 2: Die Summe entspricht nicht 100%.");
            return false;
        };
    } else {
        return true;
    }
});

Die mittels attachCheck() registrierte Funktino wird nach (!) dem submit() aufgerufen und prüft, ob der Teilnehmer oder die Teilnehmerin zur nächsten Seite fortfahren darf.

by s150563 (140 points)
Vielen Dank für die schnelle Antwort! Das hat das Problem gelöst.

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

...