Mit Javascript addieren - Variable übergeben
Susanna
- javascript
Hi,
ich habe riesige Fragebögen mit jeweils ca. 30-40 Fragen, die mit einer Ziffer beantwortet werden, und am Ende kommt eine Summe raus. Im Prinzip läuft mein Script - siehe unten -, aber das geht bestimmt eleganter, dass ich nicht bei 40 Fragen sum1 bis sum40 durchzählen muss bei der Funktion, beim parseInt und bei dem Button???????? Tausend Dank fürs Helfen.
Hier die Seite mit dem Script und dem Formular.
#######################################################
<html>
<head>
<script language="JavaScript">
function x(sum1, sum2, sum3, sum4, sum5, sum6, sum7, sum8, sum9, sum10, sum11, sum12, sum13, sum14, sum15)
{
Ergebnis = parseInt(sum1) + parseInt(sum2) + parseInt(sum3) + parseInt(sum4) + parseInt(sum5) + parseInt(sum6) + parseInt(sum7) + parseInt(sum8) + parseInt(sum9) + parseInt(sum10) + parseInt(sum11) + parseInt(sum12) + parseInt(sum13) + parseInt(sum14) + parseInt(sum15);
alert("Das Ergebnis ist " + Ergebnis + ". Bitte notieren Sie sich die Summe für später.")
}
</script>
</head>
<body>
<p><font size="2" face="Arial, Helvetica, sans-serif">Bitte
Fragen Sie die für Sie zutreffende Bewertung nach jeder
Frage des Testes ein. 0=überhaupt nicht, 7=absolut.<br>
</font></p>
<form name="Formular" >
<input type="text" name="sum1" size="5" maxlength="1">
<input type="text" name="sum2" size="5" maxlength="1">
<input type="text" name="sum3" size="5" maxlength="1">
<input type="text" name="sum4" size="5" maxlength="1">
<input type="text" name="sum5" size="5" maxlength="1">
<input type="text" name="sum6" size="5" maxlength="1">
<input type="text" name="sum7" size="5" maxlength="1">
<input type="text" name="sum8" size="5" maxlength="1">
<input type="text" name="sum9" size="5" maxlength="1">
<input type="text" name="sum10" size="5" maxlength="1">
<input type="text" name="sum11" size="5" maxlength="1">
<input type="text" name="sum12" size="5" maxlength="1">
<input type="text" name="sum13" size="5" maxlength="1">
<input type="text" name="sum14" size="5" maxlength="1">
<input type="text" name="sum15" size="5" maxlength="1">
<input type="button" value="Gesamtsumme dieser Seite" onClick="x(document.Formular.sum1.value,sum2.value,sum3.value,sum4.value,sum5.value,sum6.value,sum7.value,sum8.value,sum9.value,sum10.value,sum11.value,sum12.value,sum13.value,sum14.value,sum15.value)">
</form>
</BODY>
</HTML>
#######################################################
Wie gesagt, manche Bögen haben bis zu 40 Fragen ................
;-(((((( >>>> ;-)))))) Susanna.
Hi,
Im Prinzip läuft mein Script - siehe unten -, aber das geht bestimmt eleganter
Ja, es geht ganz sicher eleganter - da ich selber in der JavaScript-Übungsphase bin, hier mal meine Variante. Ich habe der Einfachkeit halber hier und da etwas gekürzt, u.a. bei den Eingabefeldern - aber deren Zahl ist mit dieser Lösung sowieso unproblematisch. Du kannst beliebig viele dazu nehmen.
<html><head>
<script type="text/javascript">
function x()
{
var ergebnis=0;
for(var i=0;i<document.forms[0].length-1;i++)
{
ergebnis += parseInt(document.forms[0].elements[i].value);
}
alert("Das Ergebnis ist " + ergebnis);
}
</script>
</head>
<body>
<form name="Formular" action="">
<input type="text" size="5" maxlength="1">
<input type="text" size="5" maxlength="1">
<input type="text" size="5" maxlength="1">
<input type="button" value="Gesamtsumme dieser Seite" onClick="x()">
</form>
</body></html>
Hi,
ich habe riesige Fragebögen mit jeweils ca. 30-40 Fragen, die mit einer Ziffer beantwortet werden, und am Ende kommt eine Summe raus. Im Prinzip läuft mein Script - siehe unten -, aber das geht bestimmt eleganter, dass ich nicht bei 40 Fragen sum1 bis sum40 durchzählen muss bei der Funktion, beim parseInt und bei dem Button???????? Tausend Dank fürs Helfen.
Hier die Seite mit dem Script und dem Formular.
#######################################################
<html>
<head>
<script language="JavaScript">
Es soll heißen: <script type="text/JavaScript">
Mein Tipp:
function x(f)
{
var ergebnis = 0;
if(!f.sum) return;
for(var i = 0; i < f.sum.length;i++) ergebnis += parseInt(f.sum[i].value);
alert("Das Ergebnis ist " + ergebnis + ". Bitte notieren Sie sich die Summe für später.")
}
</script>
<form name="Formular" >
<input type="text" name="sum" size="5" maxlength="1">
<input type="text" name="sum" size="5" maxlength="1">
<input type="text" name="sum" size="5" maxlength="1">
<input type="text" name="sum" size="5" maxlength="1">
<input type="text" name="sum" size="5" maxlength="1">
<input type="text" name="sum" size="5" maxlength="1">
<input type="text" name="sum" size="5" maxlength="1">
<input type="text" name="sum" size="5" maxlength="1">
<input type="text" name="sum" size="5" maxlength="1">
<input type="text" name="sum" size="5" maxlength="1">
<input type="text" name="sum" size="5" maxlength="1">
<input type="text" name="sum" size="5" maxlength="1">
.... usw.
<input type="button" value="Gesamtsumme dieser Seite" onClick="x(this.form);">
</form>
<p><font size="2" face="Arial, Helvetica, sans-serif">Bitte
Das ist nebenbei bemekrt veraltetes HTML. CSS ist für die Schriftart/farbe/größe zuständig.
Struppi.