Radio Buttons auf Eingabe prüfen!

preko

Erfahrenes Mitglied
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
 
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.
Code:
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:
HTML:
<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
 
@ 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
 
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:
Code:
// 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
 
Zurück