Ich habe die letzte Tage mich ein bisschen mit JS beschäftigt und versucht, für die drei Schieberegler einen Code schreiben mit den folgenden Zielen:
1. Überprüfung der Summe der drei Schieberegler (soll zwischen 90% und 105% liegen. Die Regler haben 5% Intervalle). Das soll natürlich nur stattfinden, wenn der Nutzer bei allen drei Reglern einen Wert gewählt hat.
2. Deaktivierung der drei Regler, wenn man auf "Nicht bekannt" clickt.
3. Reaktivierung der drei Regler, wenn man noch mal auf "Nicht bekannt" clickt.
Ich habe den folgenden Code dafür geschrieben:
<script type="text/javascript">
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");
var testinput1 = 0, testinput2 = 0, testinput3 = 0;
var testinput;
x1 = slider1.value;
x2 = slider2.value;
x3 = slider3.value;
slider1.addEventListener("change", function(){testinput1 = 1;});
slider2.addEventListener("change", function(){testinput2 = 1;});
slider3.addEventListener("change", function(){testinput3 = 1;});
slider1.addEventListener("change", function(){testinput = testinput1 * testinput2 * testinput3;});
slider2.addEventListener("change", function(){testinput = testinput1 * testinput2 * testinput3;});
slider3.addEventListener("change", function(){testinput = testinput1 * testinput2 * testinput3;});
document.getElementById("UI09_03").addEventListener("click", Regleractivator);
setInterval(function(){
if (testinput == 1 && NichtBekannt.checked == false) {
if (x1 + x2 + x3 < 21 || x1 + x2 + x3 > 24) {alert("Die Summe entspricht nicht etwa 100%.");};
}
}, 100);
function Regleractivator() {
if (NichtBekannt.checked) {
alert("Nicht bekannt gewählt");
slider1.value = -9;
slider2.value = -9;
slider3.value = -9;
slider1.disabled = true;
slider2.disabled = true;
slider3.disabled = true;
} else {
alert("Nicht bekannt nicht gewählt");
slider1.value = x1;
slider2.value = x2;
slider3.value = x3;
slider1.disabled = false;
slider2.disabled = false;
slider3.disabled = false;
}
}
</script>
Der Code funktioniert leider nicht und ich kriege den Fehler "slider1 is undefined". Ich hab viel gesucht und versucht, das Problem zu beheben. Trotzdem kein Erfolg.
Vielleicht wüssten Sie wo der Fehler liegt?
Hier können Sie auch den Pretest sehen. Die Frage ist auf Seite 2:
https://www.soscisurvey.de/mehrwertbefragung/?act=G29BFT85Sm6cjxiGkN9JuXf7
Vielen Dank im Voraus!
P.s. Ich möchte nicht die Funktion für die konstante Summe für die drei Regler benutzen. Manche Tester fanden das ein bisschen kompliziert.