0 votes
in SoSci Survey (dt.) by s219833 (120 points)

Dieses Problem wurde bereits in anderen früheren Fragen in ähnlicher Form beantwortet.

Mein Fragebogen besteht zu großen Teilen aus Schieberegler-Fragen, bei denen die Teilnehmer jeweils in 5er-Schritten auf einer 100er-Skala antworten sollen.

Statt der voreingestellten Prozentangaben hätte ich jedoch gerne nur die normalen Standardwerte (d.h. 5, 10, 15 ...).

Das Ganze funktioniert, wie auf Ihrer Seite beschrieben, über einen JavaScript-Code. Es gelingt mir jedoch leider nicht, diesen so zu verändern, dass er den von mir beschriebenen Zweck erfüllt.

Ich würde mich daher sehr freuen, wenn Sie mir mit dem Code weiterhelfen könnten.

Vielen Dank im Voraus!

by SoSci Survey (302k points)
> Das Ganze funktioniert, wie auf Ihrer Seite beschrieben, über einen JavaScript-Code. Es gelingt mir jedoch leider nicht, diesen so zu verändern, dass er den von mir beschriebenen Zweck erfüllt.

Wie sieht denn der Code aus, den Sie versucht haben ... und was sagt die Browserkonsole dazu? (https://www.soscisurvey.de/help/doku.php/de:general:browser-tools)

Wichtig auch: Wenn Sie nur 5-er Schritte erlauben möchten, dann sind das 21 mögliche Ausprägungen. Stellen Sie dafür die Differenzierung des Schiebereglers auf 1 bis 21.
by s219833 (120 points)
Die Differenzierung habe ich bereits auf 21 gestellt, die Stufen sind demnach bereits wie gewünscht im Schieberegler auswählbar.

Was den Code betrifft, so habe ich mich an dem Beispiel mit den €-Beiträgen auf Ihrer Seite orientiert, jedoch den Teil mit dem Transformieren weggelassen (da dies ja bereits passt) und am Ende statt dem + " €" ein - " %" versucht, aber der Code ist fehlerhaft.

Da ich bisher noch nie mit JavaScript gearbeitet habe, bin ich leider dahingehend sehr überfragt.
by SoSci Survey (302k points)
Wie gesagt ... posten Sie gerne Ihren Code, dann kann ich etwas dazu sagen.

> jedoch den Teil mit dem Transformieren weggelassen

Wenn Sie von 1..21 auf 0..100 kommen möchten, werden Sie eine kleine Transformation (minus 1, mal 5) brauchen.
by s219833 (120 points)
Mein Code sieht aktuell so aus:


var formatter = function(value, reversed) {
  // Nichts anzeigen, wenn ein Wert kleiner 0 (z.B. -9 = keine Antwort) vorliegt
  if (value < 0) return "";
  // Den Wert von 1-21 auf 0-20 transformieren (minus 1) und runden mittels Math.round(),
  // dann auf den Bereich 0-100 (multipliziert mit 5) und
  // Zuletzt noch das Prozentzeichen löschen (minus " %")
  return String(Math.round((value - 1) * 5)) - " %";
}
SoSciSliders.setFormat(formatter);


Im Schieberegler wird dann immer ein NaN angezeigt.

1 Answer

0 votes
by SoSci Survey (302k points)

Während man Texte mit einem Plus in JavaScript zusammefügen kann, kann JavaScript mit einem Minus nichts anfangen, wenn es um Texte geht. Versuchen Sie es einmal hiermit:

return String(Math.round((value - 1) * 5));

NaN steht übrigens für "Not a Number". Das der Text "%" sich aus Sicht von JavaScript eben nicht zum Rechnen eignete.

by s219833 (120 points)
Sehr guter Hinweis, das war tatsächlich das Problem, jetzt funktioniert es so wie gewünscht.

Vielen lieben Dank für Ihre Hilfe! :)

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

...