JavaScript mit Radio Buttons

Hallo Experten,

ich möchte ein Programm schreiben, bei dem der Anwender einige Häckchen in bestimmte Felder macht. Immer wenn so ein Häckchen versetz wird soll ein Algorithmus ablaufen und etwas bestimmtes mit document.write ausgeben.
Ich habe also sowiet die Buttons definiert

15
18

rot
blau

Ich will nun prüfen ob die Farbe rot und die Größe 15Zoll ausgewählt worden ist. Wie mache ich denn das? Welche „Variablen“ (welchen Typs) sind bei den Buttons hinterlegt?
Ist die untere If-Bedingung bzw. der untere Code einigermassen richtig?

function textschreiben()
{
if(farbe.rot==true && groesse.15zoll==true)
document.write(„Gut Gemacht“);

}

Und wie kann ich diese Funktion aufrufen? Meine Recherchen haben ergeben, dass es mit dem onchange-Befehl gehen soll, denn ich irgendwo in duie Definition des Buttons eingebe, aber ich habe keinen Beispiel gefunden, aus dem ich schlau wurde, wie das genau funktioiert.

Wäre für eure Tipps echt dankbar.

Grüße
lignuslibri

Hallo lignuslibri,

Ich will nun prüfen ob die Farbe rot und die Größe 15Zoll
ausgewählt worden ist. Wie mache ich denn das? Welche
„Variablen“ (welchen Typs) sind bei den Buttons hinterlegt?
Ist die untere If-Bedingung bzw. der untere Code einigermassen
richtig?

Mir schwant Fürchterliches! Du möchtest die Besucher deiner Seite nötigen, zunächst eine von zwei möglichen Größen auszuwählen, die der Größe ihres Monitors am nächsten kommt, damit sie deine Seite, da du Maßangeben für dein CSS in Millimetern gemacht hast, in einer auf „ihren“ Bildschirm hin optimierten Form sehen.

Wenn dem so ist: Warum baust du die Seite nicht gleich so, dass sie immer gut aussieht?

function textschreiben()
{
if(farbe.rot==true && groesse.15zoll==true)
document.write(„Gut Gemacht“);

}

Und wie kann ich diese Funktion aufrufen?

Mit dem Eventhandler „onclick“, den du deinen Radio-Buttons zuweist.

Wenn du auf ein LABEL-Element klickst, fühlt sich der entsprechende Radiobutton gleich mitgeklickt, sodass du hier keinen Eventhandler vergeben musst.

Als Übergabeparameter würde ich noch „this“ mitgeben. Dann kannst du sicherheitshalber auch noch überprüfen, ob die checked-Eigenschaft des übergebenen Objekts „true“ ist. Aber eigentlich ist das ja nicht nötig, da man einen Radiobutton anders als eine Checkbox nicht durch Klick auf diese(n) selbst abwählen kann.

Dann musst du nur noch die ID oder den Value des angeklickten Radiobuttons auslesen und schon weißt du, um welchen es sich handelt und kannst entsprechend reagieren. Aber wie gesagt: Bitte nicht zur „Bildschirmoptimierung“. So etwas ist heutzutage „out“.

Gruß Gernot

Hallo Gernot,

Mir schwant Fürchterliches! Du möchtest die Besucher deiner
Seite nötigen, zunächst eine von zwei möglichen Größen
auszuwählen, die der Größe ihres Monitors am nächsten kommt,
damit sie deine Seite, da du Maßangeben für dein CSS in
Millimetern gemacht hast, in einer auf „ihren“ Bildschirm hin
optimierten Form sehen.

Wenn dem so ist: Warum baust du die Seite nicht gleich so,
dass sie immer gut aussieht?

nee, das ist ganz anders gemeint. Ich will so eine Art Einkaufszettel bzw Checkliste programmieren, wo bestimmte Kriterien ausgewählt werden und anhand dieser Auswahlen dann weitere Schritte unternommen werden sollen. Ich habe hier nur 2*2 von eigentlich 20-30 unterschiedlichen Auswahlen als Beispiel aufgeführt um zu zeigen, was ich planne. Das hat nichts mit Seitenoptimierung zu tun.

function textschreiben()
{
if(farbe.rot==true && groesse.15zoll==true)
document.write(„Gut Gemacht“);

}

Und wie kann ich diese Funktion aufrufen?

Mit dem Eventhandler „onclick“, den du deinen Radio-Buttons
zuweist.

Wenn du auf ein LABEL-Element klickst, fühlt sich der
entsprechende Radiobutton gleich mitgeklickt, sodass du hier
keinen Eventhandler vergeben musst.

Als Übergabeparameter würde ich noch „this“ mitgeben. Dann
kannst du sicherheitshalber auch noch überprüfen, ob die
checked-Eigenschaft des übergebenen Objekts „true“ ist. Aber
eigentlich ist das ja nicht nötig, da man einen Radiobutton
anders als eine Checkbox nicht durch Klick auf diese(n) selbst
abwählen kann.

Dann musst du nur noch die ID oder den Value des angeklickten
Radiobuttons auslesen und schon weißt du, um welchen es sich
handelt und kannst entsprechend reagieren.

Ich danke dir für deine Antwort, aber meine Erfahrungen mit html und JavaScript beschränken sich bisher darauf an ein oder zwei Tagen ein paar Albernheiten ausprobiert zu haben und ich bin mir immer noch nicht sicher, wie ich an die Sache dran gehen soll. Ich wäre wirklich für ein Beispiel dankbar. Ich möchte echt selber programmieren. Was ich vorhabe ist auch ein größeres Projekt. Dazu brauche ich ein Beispiel dafür wie eine JavaScript Funktion durch ein Radiobutton ausgwählt wird, die zum Beispiel eine document.write ausgabe macht.

Was ich scon geschaft habe ist eine alert- Meldung durch Buttonklick zu erzeugen, aber dafür musste ich den Quellcode in die Definition des Buttons schreiben. Der Quellcode, der in meinem Fall ausgeführt werden soll, ist aber so groß, dass es besser wäre in nicht in die Definitionszeile des Butons zu schreiben und außerdem müssen in diesem Quellcode auch andere Auswahlkriterien verarbeitet werden.
Ich möchte nur sehen wie es geht Den rest möchte ich dann selbst machen.

Danke und Grüße
lignuslibri

Hallo lignuslibri;

nee, das ist ganz anders gemeint. Ich will so eine Art
Einkaufszettel bzw Checkliste programmieren, wo bestimmte
Kriterien ausgewählt werden und anhand dieser Auswahlen dann
weitere Schritte unternommen werden sollen. Ich habe hier nur
2*2 von eigentlich 20-30 unterschiedlichen Auswahlen als
Beispiel aufgeführt um zu zeigen, was ich planne. Das hat
nichts mit Seitenoptimierung zu tun.

Dann bin ich ja beruhigt!

Das könnte dann wie folgt aussehen, aber bist du sicher, dass du mit document.write() das gesamte Dokument überschreiben willst, sodass nachher auf der Seite nichts anderes mehr steht als „Gut gemacht!“?:

<!–
function textSchreiben (obj) {
obj = obj.form;
for (i=0; i<obj.groesse.length; i++) {
if(obj.groesse[i].checked) {
var groesse = obj.groesse[i].id;
break;
}
}
for (i=0; i<obj.farbe.length; i++) {
if(obj.farbe[i].checked) {
var farbe = obj.farbe[i].id;
break;
}
}
if(farbe == ‚rot‘ && groesse == ‚15zoll‘) {
document.write(‚Gut gemacht!‘);
}
}
//–>

15

18

rot

blau

Gruß Gernot

woooow.
jetzt hat es klick gemacht.
Danke!

lignuslibri