Rolf b: Java Script: Wenn INPUT ausgewählt dann...

Beitrag lesen

Alles viel zu kompliziert.

Gib dem Form eine Id, z.B. <form id="fragen">.

Dann findest Du alle angehakten Radiobuttons mit

var radios = fragen.querySelectorAll("input[type=radio]:checked");

Das Ergebnis ist leider kein Array, sondern eine NodeList, deshalb kannst Du die reduce-Methode von Array.prototype nicht direkt darauf anwenden, aber man kann es ja per .call zusammenstöpseln:

var punkte = [].reduce.call(radios,
                            function(s, btn) { return s + parseInt(btn.value); },
                            0);

Reduce geht ein Array der Reihe nach durch (in dem Fall das arrayähnliche Objekt NodeList) und ruft dafür die als 2. Parameter übergebene Funktion auf. Diese Funktion bekommt beim ersten mal den 3. Aufrufparameter von reduce, hier also 0, und für alle weiteren Aufrufe die Rückgabe vom vorigen Aufruf. Die obige Zeile addiert also die Values aller Radiobuttons auf, die in der radios-NodeList stehen.

Hier ist ein Beispiel: fiddle