Javascript: Formularproblem mit Radio-Buttons
-
hmm, doch,
so ähnlich meinte ich das schon.
Mein Formular sieht wie oben von dir beschrieben aus, hat 6 Fragen, wenn der User jetzt die einzelnen Fragen beantwortet, sieht er ja rechts die Punkte für die einzelne Antwort.
Hinzukommen soll jetzt, dass am Ende des Formulars gleichzeitig die derzeitige Gesamtpunktzahl steht. (Ist eben eine Vorgabe). Man muss zwar alle Fragen beantworten (hab ich schon gemacht), aber dennoch soll die Gesamtpunktzahl immer da stehen.
Ich soll also nach jeder Frage schon immer die Funktion aufrufen?
Wie denn genau?,d.h. mit welchem Event?!
-
im onClick-Ereignis der Radiobuttons...? - oder im onChange-Ereignis des Eingabefeldes, mehrere Funktionen hinereinander aufrufen kannst du, indem du sie mit Semikolon trennst...
-
Ich würde die Funktion punkteAddieren immer dann aufrufen, wenn du irgendwas in den einzelnen Ausgabe-Feldern der Fragen veränderst. D.h. am besten wenn du einen Radio-Button anklickst.
Also dass bei jedem Klick (bzw. Änderung) eines Radio-Buttons der Event-Handler onClick ungefähr so aussieht:
[html]
<input type="radio" name="fragen_gruppe" value="fragen_wert" onClick="this.form.ergebnis_feld_von_aktueller_frage.value = 1**;PunkteAddieren()**">[/html]/edit: Zu spät...
Caipi
-
hmm, ok
und wie gebe ich die dann am besten aus?
<input size="7" name="AusgabeGesamt" readonly="readonly" .:??:.>
Muss ich dafür einen zentralen Namen vergeben?
-
Indem du auf das Element zugreifst...?
document.Formular.GesamtPunkte.value="...";
-
Windoof schrieb:
Indem du auf das Element zugreifst...?
document.Formular.GesamtPunkte.value="...";
Schon klar, aber ich kann das doch nicht einfach so übergeben, oder?
<input size="7" name="AusgabeGesamt" readonly="readonly" document.Eingabe.AusgabeGesamt.value= ?; >
-
wie willst du das dort bitte übergeben...? Dir sind schon die Javascript-Grundkenntnisse bekannt? - Ich denke nicht... per Javascript übergibst dudas... in deiner Funktion zum Zusammenrechnen...
-
*hüstel*
ok
-
ok,
ich hab jetzt fast alles, so wie ich es brauche (wahrscheinlich alles quick 'n dirty), komme bloss bei einer Sache nicht weiter.
Und zwar hab ich verschachtelte If-Abfragen:
if (Fall x) { if(Fall y <= 10) { alert("irgendwas") } alert("Das hier erscheint immer:(") } else (Fall z) { alert("unwichtig") }
Und zwar, wenn Fall x und Fall y <= 10 zusammen eintreten, gibt er korrekterweise "irgendwas" aus, aber leider danach auch nochmal "Das hier erscheint immer".
Wenn ich den break-Befehl benutze, um vorzeitig aus der Schleife zu springen, bekomme ich eine Fehlermeldung.
Die && - Verknüpfung kann ich nicht benutzen, d.h. wie sie funzt, weiss ich schon, aber man kann sie in diesem speziellen Fall nicht einsetzen (Ist so!, aber etwas umständlich das jetzt zu erklären).
Mach ich was falsch, oder gibt's noch ne andere Methode?
-
Das ist doch ganz klar, dass die zweite Fehlermeldung automatisch ausgeführt wird, wenn Fall x und Fall y <= 10. Ich glaube dein Design ist ein wenig merkwürdig...
Außerdem kann ich mir kaum vorstellen, dass du die Und-Bedingung in diesem Fall nicht benutzen kannst.So vielleicht? (Ohne deine Situation genau zu kennen)
if((Fall x) && (Fall y <= 10)) { tue das } else if(Fall x) { tue dies } else { tue jenes }
Ps.: Bzg. break; Sicher dass du dieses IF-Konstrukt in einer Schleife ausführst?
Caipi