• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Probleme mit Javascript form validation

newmacuser24

Antonowka
Registriert
27.12.05
Beiträge
355
Hallo,

Es ist zum verzweifeln! Irgendwie klappt die Überprüfung des übermittelten Formulars mittels JavaScript nicht so richtig.

Ich habe in einem Formular mehrere radio buttons. Jetzt möchte ich, sobald das Formular übermittlet wird, dass überprüft wird, welcher radio button angewählt wurde, sodass nochmal eine confirm Mitteilung ausgegeben werden kann und der user somit seine Auswahl bestätigt.

Hier der Code:

<script type="text/javascript">


function validate() {
var chosen = document.form.getElementByName('myRadioButtonGroup');
if (chosen.value=='weekly') {
var answer = confirm('chosen weekly!');
if (answer) {
return true;
}
else {
return false;
}
}
else if (chosen.value=='monthly') {
var answer = confirm('chosen monthly!');
if (answer) {
return true;
}
else {
return false;
}
}
}

</script>

Hier HTML:

<form action="" name="form" method="post" onsubmit="return validate()">
<input type ="radio" name="myRadioButtonGroup" value ="weekly" > Weekly <br/>
<input type="radio" name="myRadioButtonGroup" value ="monthly" > Monthly <br/>
<input type="submit" name="submit" value="Submit">
</form>

Ich denke ich mache hier etwas grundlegendes falsch, denn der code scheint logisch.

Danke schonmal im Voraus!
 
Du musst den Status der Radiobuttons einzeln abfragen, etwa so:
Code:
function validate(){
var answer;
if (document.form.myRadioButtonGroup[0].checked === true) {
answer = 'chosen weekly!';
} else if (document.form.myRadioButtonGroup[1].checked === true) {
answer = 'cosen monthly!';
}
confirm(answer);
}
 
Hallo,

VIELEN DANK!

Jetzt klappt das Anzeigen der confirm Nachrichten. Wäre ja zu schön gewesen, wenn es das schon gewesen wäre :-)

Habe den Code jetzt folgendermassen angepasst:

function validate(){
var answer;
if (document.form.myRadioButtonGroup[0].checked === true) {
answer = 'chosen weekly!';
} else if (document.form.myRadioButtonGroup[1].checked === true) {
answer = 'chosen monthly!';
}
confirm(answer);

if (answer) {
return true;
}
else {
return false;
}
}

Das Formular wird jedoch in jedem Fall übermittelt, was nun auch wieder nicht sein soll. Vermutlich fehlt da noch ne Kleinigkeit!?

Vielen Dank schonmal im Voraus!
 
confirm(answer) gibt true oder false zurück; also musst du z.B. schreiben var send = confirm(answer); und danch auf send abfragen.