Abhängige Prüfung mit chkformular
Nicole
- javascript
Hallo zusammen,
ich habe irgendwo einen Denkfehler, komme aber leider nicht dahinter.
Ich habe ein Formular in dem einige Felder geprüft werden, unter anderem gibt es zwei Felder die zusammenhängen.
Nämlich das Feld "Kinder" und das Feld "Alter der Kinder"
Natürlich soll das Feld "Alter der Kinder" nur dann augefüllt werden, wenn im Feld Kinder ein bestimmter Wert eingetragen ist.
Ich habe es wie folgt gelöst:
if (document.form.Kinder.value=="1" ||
document.form.Kinder.value=="2" ||
document.form.Kinder.value=="3" ||
document.form.Kinder.value=="4" ||
document.form.Kinder.value=="5" ||
document.form.Kinder.value=="6" &&
document.form.AlterKinder.value == "")
{ alert ("Bitte geben Sie das Alter der Kinder an!");
document.form.AlterKinder.focus();
return;
}
Leider ist es so, das wenn das Feld "Kinder" mit z.B. 1 ausgefüllt wird, das dann zwar das "Alter der Kinder" verlangt wird, wird dies jedoch angegeben, wird es immernoch als fehlend angegeben.
Wo ist der Fehler? Ich finde es absolut nicht.
Vielen Dank Nicole
if (document.form.Kinder.value=="1" ||
document.form.Kinder.value=="2" ||
document.form.Kinder.value=="3" ||
document.form.Kinder.value=="4" ||
document.form.Kinder.value=="5" ||
document.form.Kinder.value=="6" &&
document.form.AlterKinder.value == "")
{ alert ("Bitte geben Sie das Alter der Kinder an!");
document.form.AlterKinder.focus();
return;
}
Die Interpretation diesen Codes lautet:
Wenn in dem Feld Kinder eine 1 oder ... 5 steht ODER wenn dort eine 6 udn gleichzeitig bei AlterKinder nichts steht gib den alert aus.
Also: immer alert bei 1 - 5, bei 6 zusätzliche Prüfung auf KinderAlter==""
Mit entsprechender Klammerung solltest du dagegen das von dir gewünschte erreichen.
if (document.form.Kinder.value=="1" ||
document.form.Kinder.value=="2" ||
document.form.Kinder.value=="3" ||
document.form.Kinder.value=="4" ||
document.form.Kinder.value=="5" ||
document.form.Kinder.value=="6" &&
document.form.AlterKinder.value == "")
{ alert ("Bitte geben Sie das Alter der Kinder an!");
document.form.AlterKinder.focus();
return;
}Die Interpretation diesen Codes lautet:
Wenn in dem Feld Kinder eine 1 oder ... 5 steht ODER wenn dort eine 6 udn gleichzeitig bei AlterKinder nichts steht gib den alert aus.Also: immer alert bei 1 - 5, bei 6 zusätzliche Prüfung auf KinderAlter==""
Mit entsprechender Klammerung solltest du dagegen das von dir gewünschte erreichen.
stimmt, danke
jetzt funktioniert es:
if ((document.form.Kinder.value=="1" ||
document.form.Kinder.value=="2" ||
document.form.Kinder.value=="3" ||
document.form.Kinder.value=="4" ||
document.form.Kinder.value=="5" ||
document.form.Kinder.value=="6") &&
(document.form.AlterKinder.value == ""))
{alert ("Bitte geben Sie das Alter der Kinder an!");
document.form.AlterKinder.focus();
return;
Om nah hoo pez nyeetz, Nicole!
if ((document.form.Kinder.value=="1" || document.form.Kinder.value=="2" || document.form.Kinder.value=="3" || document.form.Kinder.value=="4" || document.form.Kinder.value=="5" || document.form.Kinder.value=="6") && (document.form.AlterKinder.value == "")) {alert ("Bitte geben Sie das Alter der Kinder an!"); document.form.AlterKinder.focus(); return;
Man spart Schreibarbeit und häufiges Durchsuchen des Dokuments, wenn man
var kinderzahl = document.form.Kinder.value;
deklariert.
zudem könntest du die gültigen Werte in ein Array packen
<pseudocode>
var gültig = array(1,2,3,4,5,6);
if (kinderzahl in gültig && kinderalter =='') {alert ...}
</pseudocode>
Matthias