Grüssi nochmal
Ich will ja nicht nerven, aber eigentlich kann ich nicht nachvolziehen, warum das bei den options-Feldern anders sein soll als bei Textfeldern!
Les' dir bitte den JS-Teil in Selfhtml durch! Du hast 2 gleichnamige Radiobuttons, die kannst du nicht einfach mit value abfragen, welcher denn nun geklickt wurde! Du musst erst jeden fragen ob er geklickt wurde, und dann kannst du mit value seinen Wert holen!
function chkFormular()
{
if(document.Formular.text.value == "")
{
alert("Bitte Ihren Namen angeben!");
return false;
}
<form name="Formular" method="post" action="/cgi-bin/form4.cgi" onSubmit="return chkFormular()">
<input type="radio" name="Auswahl" value="radiobutton2">
<input type="radio" name="Auswahl" value="radiobutton1">
<input type="submit" value="Abschicken">
<input type="text" name="text">
</form>
</body></html>
if(document.Formular.Auswahl.value == "")
kann man einfach weiter klicken ohne dass die Fehlermeldung kommt.
Aber "Auswahl" ist doch genau so eine Variable wie "text", oder?
Nein !!! Auswahl ist ein Feld, und keine "normale" (skalare) Variable. Ein Feld enthält mehrere solcher Variablen. In diesem Fall zwei, nämlich den value des ersten radiobuttons und als zweites den value des zweiten Radiobuttons:
document.Formular.Auswahl[0].value == "radiobutton1"
document.Formular.Auswahl[1].value == "radiobutton2"
Ich kann dich an dieser Stelle nur nochmals darauf hinweisen, doch bitte in Selfhtml zuerst mal die Grundlagen einer "Programmiersprache" dir anzueignen!
Ändere dein Formular-script mal folgendermassen ab:
function chkFormular() {
alert(document.Formular.Auswahl.value);
}
- lass dir mal den Wert ausgeben - sollte Beweis genug sein ;-)
- Ersetze 'Auswahl' durch 'Auswahl[0]' und schau den Wert an.
- Ersetze 'Auswahl' durch 'Auswahl[1]' und schau den Wert an.
dann siehst du hoffentlich warum du vorher abfragen musst welcher Radiobutton denn nun "checked" wurde, denn aus einer Gruppe gleichnamiger Radiobuttons kann immer nur einer checked sein! Den musst du erst finden!
Wenn keine Option ausgewählt ist, hat die Variable "Auswahl" doch keinen Wert, also value == "", oder???
Auswahl.value (alleine) hat _nie_ einen definierten werten, solange es mehr als einen Radiobutton mit diesem Namen gibt.
Warum geht das dann nicht so?
s.o.
Wenn du dir das nächstemal diese Frage stellst, dann erinnere dich an dieses Script. Lass dir den Wert eines Formularfeld einfach mit alert ausgeben, so kannst du genau sehen wo die Fehler liegen.
lg bernhard