Hallo,
Ich würde gerne auf einem Schieberegler benutzerdefinierte Werte anzeigen lassen. Dafür habe ich den Code, der auf Ihrer Website angegeben ist, etwas modifiziert. Er lautet nun:
<script type="text/javascript">
<!--
formatter = function(value, reversed) {
if (value < 0) return "";
if(value >= 1 && value < 5){
return 0
} if(value >= 5 && value < 9){
return 1
} if(value >= 9 && value < 13){
return 2
} if(value >= 13 && value < 17){
return 3
} if(value >= 17 && value < 21){
return 4
} if(value >= 21 && value < 25){
return 5
} if(value >= 25 && value < 29){
return 6
} if(value >= 29 && value < 33){
return 7
} if(value >= 33 && value < 37){
return 8
} if(value >= 37 && value < 41){
return 9
} if(value >= 41 && value < 45){
return 10
} if(value >= 45 && value < 49){
return 11
} if(value >= 49 && value < 53){
return 12
} if(value >= 53 && value < 57){
return 13
} if(value >= 57 && value < 61){
return 14
} if(value >= 61 && value < 65){
return 15
} if(value >= 65 && value < 69){
return 16
} if(value >= 69 && value < 73){
return 17
} if(value >= 73 && value < 77){
return 18
} if(value >= 77 && value < 81){
return 19
} else {
return 20
}
}
SoSciSliders.setFormat(formatter);
// -->
</script>
Der Schieberegler kann Werte von 1-81 annehmen.
Die Anzeige funktioniert auch, allerdings gibt es folgendes Problem. Die tatsächlich gespeicherten Werte ergeben nach der gleichen Umrechnung nicht dieselben Werte, die angezeigt werden. Dies gilt für Werte im Grenzbereich:
Beispiel: Wenn ich den Schieberegler ganz langsam immer weiter nach rechts bewege, sodass er fast 20 anzeigt, aber gerade noch auf 19 ist, wird der Wert 81 gespeichert. Dies entspricht laut der Umrechnung eigentlich einer 20. Dem Probanden wird aber 19 angezeigt. Das ist insbesondere deshalb ein Problem, weil der ausgewählte Wert später im Fragebogen noch einmal verwendet wird. Spätestens dort wird dem Probanden dann auffallen, dass dieser Wert nicht mit dem Wert übereinstimmt, den er vorher ausgewählt hat.
Ich habe auch andere Berechnungen ausprobiert, z.B. mit Math.round(). Es führt immer wieder zum gleichen Ergebnis. Das Problem ergibt sich zwar weniger oft, wenn man nicht versucht, das Problem bewusst herbeizuführen, es ergibt sich jedoch zu oft, um es zu ignorieren.
So wie es momentan aussieht kann ich daher den Schieberegler nicht verwenden, was wirklich schade ist! Ich hoffe, dass Sie das Problem in Zukunft beheben können oder falls es möglich ist, mir jetzt schon bei einer Lösung zu helfen, die ich nicht sehe.
Viele Grüße!