Formular auf ausfüllung überprüfen
Peter
- javascript
Ich hab ein Problem: ich hab ein Bisschen mit Javascript code herumgebastelt, aber nichts gescheites zustandegebracht. Es geht um eine Umfrage und darum, dass in allen Checkboxen Gruppen mindestens eine Option selektiert sein muss.
Ich hab das volgendermaßen geregelt:
function Check() {
var AnythingSelected = 0;
for(var i = 0; document.getElementsByName("Geschlecht").length; i++) {
if(document.getElementsByName("Geschlecht")[i].checked == "true") {
AnythingSelected = 1;
}
}
if(AnythingSelected == 0) {
alert("Alle Felder müssen ausgefüllt werden!");
}
AnythingSelected = 0;
for(i = 0; document.getElementsByName("WieOftLesen").length; i++) {
AnythingSelected = document.getElementsByName("WieOftLesen")[i].checked ? 1 : 0;
}
if(AnythingSelected == 0) {
alert("Alle Felder müssen ausgefüllt werden!");
}
}
Und im HTML-Körper dann:
<table border="0">
<tr><td width="210">
<input type="radio" class="Radio" name="WieOftLesen" value="Garnicht"> Garnicht<br>
<input type="radio" class="Radio" name="WieOftLesen" value="1-6 mal im Jahr"> 1-6 mal im Jahr<br>
<input type="radio" class="Radio" name="WieOftLesen" value="7-12 mal im Jahr"> 7-12 mal im Jahr<br>
</td><td width="210">
<input type="radio" class="Radio" name="WieOftLesen" value="1-4 mal im Monat"> 1-4 mal im Monat<br>
<input type="radio" class="Radio" name="WieOftLesen" value="5-8 mal im Monat"> 5-8 mal im Monat<br>
<input type="radio" class="Radio" name="WieOftLesen" value="Öfter"> Öfter
</td></tr>
</table>
und
<table border="0">
<tr><td width="130">
<input type="radio" class="Radio" name="Geschlecht" value="Männlich"> männlich
</td><td width="130">
<input type="radio" class="Radio" name="Geschlecht" value="Weiblich"> weiblich
</td></tr>
</table>
Was genau stimmt daran nicht?
PeterK
Hallihallo!
Es gab, nach einigen Rumprobierereien, nur einen entscheidenden Fehler im Quelltext:
In den Forschleifen wurden die Abbruchbedingungen falsch gesetzt.
Es fehlt ein kleines, aber simples "i<=" vor den length- Teilen:
for(i = 0; i <= document.getElementsByName("Geschlecht").length; i++)
^^^^^^^^
Wenn Du das noch nachträgst, läuft das Skript perfekt!
Viele liebe Grüße,
Der Dicki
Okey! Es läuft (ganzschön blöd von mir...)
Aber wenn ich die routine jetzt mit
<input type="submit" title="Senden" class="Button" onClick="Check()">
aufrufe, wie kann ich dann das abschicken verhindern?
Oder muss ich die Kontrolle in mein PLScript einbauen...?
PeterK
Hallihallo!
Aber wenn ich die routine jetzt mit
<input type="submit" title="Senden" class="Button" onClick="Check()">
aufrufe, wie kann ich dann das abschicken verhindern?
Das kommt darauf an:
Für den Fall, daß das abschicken nach einer erfolgreichen Kontrolle geschehen soll, baust Du in Deiner Kontrollfunktion ein return false; und ein return true; ein.
False soll die Funktion zurückliefern, wenn die Eingaben nicht stimmen.
Durch den false wird das Abschicken des Formulars verhindert.
Wenn aber Alles OK ist, dann lass die Funktion einfach ein true (oder gar nichts, was aufs Gleiche rauskäme) zurückliefern. Dadurch wird der Submit dann nach der Kontrolle auch noch ausgeführt.
Ich hoffe, ich konnte Dir damit helfen.....
Viele liebe Grüße,
Der Dicki