• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Values eines Formulars addieren (Quiz)

Nummer25

New member
Guten Tag,

Anmerkung vorab: Mein Wissensstand von Javascript ist äußerst gering!
Ich versuche zurzeit ein kleines Quiz zu schreiben, dafür nutze ich ein Formular, welches die Fragen enthält und logischerweise eine Funktion.
Leider scheitere ich, weshalb meine Funktion noch zu 90% unvollständig ist.
Was fehlt? - Ich will die Values aller Fragen (f_1;f_2 usw.) addieren, der Gesamtwert soll dann per switch in ein konkretes Ergebnis umgewandelt werden.
Wie kann ich alle Values der check und radioboxen addieren? Muss ich erst prüfen ob sie "checked" sind?

HTML:
<html>
<head>
<title>Quiz</title>
<script type="text/javascript">

function quiz (a)
{
 var punkte     = 0;     // Variable für die Bewertung der Antworten am Ende + Kontrolle ob alle Fragen beantwortet wurden
 var ergebnis;



  if (punkte <x)        // x entspricht der Anzahl der Fragen (muss noch ersetzt werden,zurzeit 2)
    {
     alert('Bitte alle Fragen beantworten!');
     return false;
    }
     else {
            switch (punkte)                    //Werte des Formulars sollen in ein konkretes Ergebnis umgewandelt werden
             {
              case z:ergebnis="Fußgänger";  break;   //z und y später mit konkreten Werten ersetzten u. weiter fortführen
              case y:ergebnis="Neuling";    break;


             }
          }
           ergebnis = "+ergebnis+";
           return ergebnis;
}

</script>
Achtung, dieses Quiz ist sehr subjektiv! Bitte fühlen Sie sich vom Ergebnis nicht persönlich angegriffen.
</head>
 <form name="eingabe_1" onsubmit="return quiz(true)" action=""> <!--Formular (enthält die Fragen)-->
   Wie findest du SUVs?
    <input name="f_1" type="checkbox" value="1">   Super! <!--Werte mind. 1, damit Kontrolle durchgeführt werden kann -->
    <input name="f_1" type="checkbox" value="10">  Sch...
    <input name="f_1" type="checkbox" value="5">   kopflastig
    <input name="f_1" type="checkbox" value="8">   Wieso kaufen immer Städter solche Teile?
    <input name="f_1" type="checkbox" value="1">    Neutral
   <p>Wenn ich "Ferrari" höre denke ich an...
    <input name="f_2" type="checkbox" value="10">   Merchandise
    <input name="f_2" type="checkbox" value="3">   Leidenschaft
    <input name="f_2" type="checkbox" value="1">   Michael Schumacher
    <input name="f_2" type="checkbox" value="5">    meinen Kontostand

   <p><input value="Liegst du richtig?" type="submit">
 </form>

</body>
</html>
Danke für eure Zeit
 
Ja, du solltest nur die zusammen rechnen, die auch angehakt sind. Mit JQuery würde ich das in etwa so machen:

Code:
var summe = 0;
// Mit einer Schleife über alle Checkboxen iterieren und anschließend prüfen, welche angehakt sind.
$.each($("form input[type=checkbox]"), function(index, element) {
  if ($(element).is(":checked")) {
    summe += parseInt($(element).val()); // parseInt da .val() einen string zurück gibt
  }
});

alert(summe);

// Weitere Abfragen, switch, ifs, ...
 
Das ":checked" sollte man doch auch gleich in den Selektor reinbauen können. Macht den Code noch übersichtlicher.

@Nummer25: Bist du sicher, dass du Checkboxen und keine Radioboxen haben willst?
Auch solltest du dir gleich zu Anfang einen gescheiten Codestil mit einer konsistenten Einrückung angewöhnen. Macht den Code viel lesbarer und wartbarer.
 
Zurück
Oben