0 votes
in SoSci Survey (dt.) by s027974 (230 points)
edited by SoSci Survey

Hallo,
wir fragen in unserem Fragebogen nach Vollzeitäquivalenten nach Beschäftigungsgruppen. Dafür haben wir eine Frage des Typs "Texteingabe offen" erstellt und eingestellt, dass Dezimalzahlen eingegeben werden dürfen.
Um den Befragten das Eingeben zu erleichtern, haben wir folgendenden Javascrip-Code eingefügt (s.u.), dieser sollte jeweils die Summe der VZÄ errechnen. Dieser funktioniert jedoch nicht, da mit parseInt die Nachkommazahlen abgeschnitten werden.
Gibt es eine Alternative, die wir anwenden können?
Viele Grüße und herzlichen Dank

<script type="text/javascript">

var s07e1 = document.getElementById("MA07_01");
var s07e2 = document.getElementById("MA07_02");
var s07e3 = document.getElementById("MA07_03");
var s07e4 = document.getElementById("MA07_04");
var s07e5 = document.getElementById("MA07_05");
var s07e6 = document.getElementById("MA07_06");
var s07e7 = document.getElementById("MA07_07");

var Summe07 = document.getElementById("MA07_08"); 


function toogle07Text() {
 Summe07.value=
    (s07e1.value == "" ? 0 : parseInt(s07e1.value))
    + (s07e2.value == "" ? 0 : parseInt(s07e2.value))
    + (s07e3.value == "" ? 0 : parseInt(s07e3.value))
    + (s07e4.value == "" ? 0 : parseInt(s07e4.value))
    + (s07e5.value == "" ? 0 : parseInt(s07e5.value))
    + (s07e6.value == "" ? 0 : parseInt(s07e6.value))
    + (s07e7.value == "" ? 0 : parseInt(s07e7.value));
}

SoSciTools.attachEvent(s07e1, "keyup", toogle07Text);
SoSciTools.attachEvent(s07e2, "keyup", toogle07Text);
SoSciTools.attachEvent(s07e3, "keyup", toogle07Text);
SoSciTools.attachEvent(s07e4, "keyup", toogle07Text);
SoSciTools.attachEvent(s07e5, "keyup", toogle07Text);
SoSciTools.attachEvent(s07e6, "keyup", toogle07Text);
SoSciTools.attachEvent(s07e7, "keyup", toogle07Text);

toogle07Text();

// -->
</script>

1 Answer

0 votes
by SoSci Survey (306k points)
selected by s027974
 
Best answer

Versuchen Sie doch als erstes einmal, bei der Frage direkt eine feste Summe einzutragen. Welche Summe das ist, ist erstmal ohne Belang, denn sie wird erst überprüft, falls die Frage auch eine Antwort einfordert. Aber wenn Sie eine Summe eintragen, wird die aktuelle Summe in der Frage automatisch angezeigt.

Wenn Sie es dennoch per JavaScript lösen möchten, müssten Sie mindestens zwei Modifikationen vornehmen. Zum einen müssten Sie statt parseInt() die Funktion parseFloat() verwenden. Zum anderne müssten Sie mittels replace() Kommata in Punkte umwandeln.

parseFloat(s07e1.value.replace(",", "."))
by s027974 (230 points)
Vielen Dank!

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

...