0 votes
in SoSci Survey (dt.) by s114804 (145 points)
edited by SoSci Survey

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!

by s114804 (145 points)
Ich könnte mir vorstellen, dass für die Anzeige ungerundete Werte verwendet werden. Das heißt, wenn ich den Regler ganz langsam nach rechts bewege, sodass er fast 20 anzeigt, steht er quasi auf 80,9. Dies ist ja kleiner als 81 und daher wird 19 angezeigt. Aber beim speichern des Werts wird auf die nächste ganze Zahl gerundet. Dies ergibt dann einen anderen Wert. Könnte man dies irgendwie verhindern?

1 Answer

+1 vote
by SoSci Survey (305k points)

Die tatsächlich gespeicherten Werte ergeben nach der gleichen Umrechnung nicht dieselben Werte, die angezeigt werden. Dies gilt für Werte im Grenzbereich

Die formatter Funktion bekommt eine Fließkommazahl - keine Ganzzahl. Versuchen Sie ganz oben in Ihrer Funktion bitte einmal, folgendes zu ergänzen:

var = Math.round(value);
by s114804 (145 points)
Funktioniert danke!

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

...