# Radio Buttons auf Eingabe prüfen!



## preko (9. Dezember 2004)

Hi,

ich habe ein Formular, in dem u.a . aus drei Radio Buttons ausgewählt werden kann. Das ganze Formular wird vor dem Absenden geprüft. 
Leider werden dabei aber die Radio Buttons nicht berücksichtigt. Wie kann ich prüfen, ob eines der drei Radio Buttons angewählt wurde.

Das gleiche Problem habe ich bei drei im gleichen Formular vorkommenden Checkboxen. Gibt es da eine vergleichbare Methode.

Sorry, habe keine JavaScript Erfahrung, arbeite mit PHP, aber für die Formularprüfung brauche ich diese Abfrageroutine. Hat jemand einen Tipp für mich?


Beste Grüße,
preko


----------



## Quaese (9. Dezember 2004)

Hi,

folgendes Script prüft, ob ein Radiobutton bzw. eine Checkbox gesetzt ist. Ist das der Fall, wird
*true* zurückgegeben, *false* sonst. Übergeben wird der Funktion der Name der Radio- bzw. 
Checkboxgruppe, die geprüft werden soll. Der Formularname (*formTest*) muss eventuell 
auch angepasst werden.

```
function checkForm(strElement){
    var objForm = document.formTest;
    var boolRadio = false;	// false = kein Button gewählt, true = Button gewählt

    // Radio-Gruppe durchlaufen
    for(var i=0; i<objForm.elements(strElement).length; i++){
        // Falls der aktuelle Radiobutton gesetzt ist
        if(objForm.elements(strElement)[i].checked)
            boolRadio = true;
    }
    return boolRadio;
}
```
Folgender HTML-Code demonstriert die Funktionsweise:

```
<form name="formTest" action="" method="" target="">
    <input type="radio" name="radioTest" value="a" />a<br />
    <input type="radio" name="radioTest" value="a" />b<br />
    <input type="radio" name="radioTest" value="a" />c<br />
    <input type="button" value="Radiotest" onclick="alert(checkForm('radioTest'));" /><br />

    <input type="checkbox" name="checkboxTest" value="a" />a<br />
    <input type="checkbox" name="checkboxTest" value="a" />b<br />
    <input type="checkbox" name="checkboxTest" value="a" />c<br />
    <input type="button" value="Checkboxtest" onclick="checkForm('checkboxTest');" />
</form>
```
Das Einbinden in Dein Testscript wirst Du sicherlich selbständig hinbekommen.

Ciao
Quaese


----------



## preko (10. Dezember 2004)

@ Quaese:

zunächst einmal vielen Dank für die Info. Soweit habe ich es auch kapiert.

Jetzt habe ich nur noch das Problem, dass bereits eine andere Funktion mit der Bezeichnung "*function chkFormular()*" in Verwendung ist und durch *onSubmit="return chkFormular()"* im einleitenden Form-Tag aufgerufen wird.

Wie kombiniere ich die Aufrufe *onSubmit="return chkFormular()"*, *onclick="alert(checkForm('radioTest'));" * und *alert(checkForm('checkboxTest'));"*, so dass alle drei Aufrufe durch die Funktion *onclick* "verarbeitet" werden?

Beste Grüße,
preko


----------



## Quaese (10. Dezember 2004)

Hi,

also das *alert* um den ersten Aufruf des Scripts habe ich nur deshalb eingefügt, damit erkennbar
ist, was die Funktion zurückliefert.

Wie Du die Funktion einbindest, kommt auf Dein bestehendes Script an. Wenn Du zum Beispiel
aus dem Script springst, wenn eine Bedingung nicht erfüllt ist, könnten die Aufrufe wie folgt aussehen:

```
// Deine bisherige Funktion
function chkFormular(){
    // ... Dein bisheriger Code
    
    // Falls keine Checkbox angwählt wurde
    if(!checkForm('checkboxTest'))
         return false;  // Submit unterbinden

    // Falls kein Radiobutton angwählt wurde
    if(!checkForm('radioTest'))
         return false;  // Submit unterbinden

    // ... evtl. weiterer Code
}
```
Obiges Code-Fragment setzt voraus, dass eine Radio- und Checkboxgruppe existiert, wie 
weiter oben von mir bereits gepostet. Ebenfalls muss die Funktion *checkForm* eingebunden 
sein.

Sollte Dir das auch nicht helfen, müsste ich Dein bisheriges Script sehen.

Ciao
Quaese


----------

