gleichnamige Radiobuttons ansprechen

daywalkertp

Erfahrenes Mitglied
hab ein kleines Prob

Ich habe in meinem Formular zwei Radios mit einem Namen. Wie kann dem PC jetzt sagen: Wenn Radio mit dem Wert 'add' ausgewählt wurde dann mache dies andernfals jenes. Ich hab mal probiert aber das klappt so nicht:

if (document.form_ver.Subs.value=='false'.checked){
//mache dies;
}
else {
//mache jenes
}


Wie mache ich das richtig? Kann man die überhaupt so checken?
 
Bin mir nicht 100% sicher aber ich denke mal:

if(document.DeinFormular.DeinRadioButton.Checked == false)

oder so ähnlich
 
aber gibt das dann keine Endlosschleife?
Den ich habe zwei RadioButtons mit jeweils dem gleichen Namen.
Und sogesehen ist das dann ja immer selektiert :(
 
Nee, das stimmt so nicht, Toolkit. :)

Die Radiobuttons können gerne den gleichen Namen haben (wie soll auch sonst eine beschränkte Auswahl realisiert werden?), zugreifen kannst du dann über einen Index, da der Interpreter automatisch die gleichnamigen Buttons alle in ein ebenso genanntes Array steckt:
PHP:
if (document.formularname.radiobuttonname[1].checked == false) {
    // ...
} else {
    // ...
}
hth,
Geist
 
Ich versteh dein Problem glaub ich nicht richtig...
Du willst doch je nachdem welcher RadioButton ausgewählt
ist irgendeine Aktion ausführen,oder?
Dann gibst du dem RadioButton 1 z.B. den Namen "Butone"
und dem 2. den Namen "Buttwo".Dein Formular heißt dann
z.B. Form1.
Und dann checkst du welcher ausgewählt ist und führst
für die ensprechende Auswahl den Code aus, dass könnte
dann etwa so aussehen:

Code:
funktion Checkbutton()
{
if(document.Form1.Butone.Checked == true)
  {
  alert("Button1 ist gewählt");
}
else if(document.Form1.Buttwo.Checked == true)
  {
  alert("Button2 ist gewählt");
}
else
  {
  alert("Kein Button ausgewählt!");
}
}

Sollte so gehen, is jetzt nur so ausm Kopf...
 
Sobald du unterschiedliche Namen gibst, kann der User aber mehrere Buttons anklicken, bei Buttonelementen mit gleichem Wert für das name-Attribut jedoch kann der User nur zwischen diesen jeweils einen wählen, nicht mehr.

Von daher ist es nicht beliebig, die Namen gleichzusetzen oder unterschiedlich zu wählen. :)

Geist
 
mann kann das aber auch allgemeiner mit dem typ machen. wenn man jedes element des formulars durchgeht, kann man immer den typ der elements prüfen. bei den radiobuttons wäre das dann so:

Code:
var aktuelles_element = form.element[i]; 
if(aktuelles_element.type==radio){
var o = formular.aktuelles_element.name;
for(var zaehler=0; zaehler<o.length; zaehler++){
if(o[zaehler].checked)
var w_f = true;
else
var w_f = false;
}
}

if (!w_f)
document.write("bitte einen radiobutton diingsln");

und ich hab auch grad ne frage: kann man das auch irgendwie mit weniger variablen schaffen? also hier wurden ja 3 verwendet, aber könnte man das auch mit nur z.b. einer? wenn ja, wie?
 
  • da scheint der Beginn einer for-Schleife zu fehlen, oder woher kommt die Variable i?
  • das Objekt heißt elements, nicht element
  • warum willst du alle Elemente des Formulars prüfen lassen?
Geist
 
Original geschrieben von Geist
  • da scheint der Beginn einer for-Schleife zu fehlen, oder woher kommt die Variable i?
  • das Objekt heißt elements, nicht element
  • warum willst du alle Elemente des Formulars prüfen lassen?
Geist

oh, schöne liste^^

jo, oben soll eigentlich noch eine forschleife sein, die alle formularelemente durchgeht. und die zählervariable ist i.

oops:p

weil man das script dann nicht für jedes formular gross ändern muss.
 
Zurück