Problem mit JA/NEIN Sicherheitsabfrage im Formular
Christian
- javascript
0 wahsaga0 Axel Richter
Hallo! Ich habe ein Bewerbungsformular, welches vor dem Abschicken noch die Einträge überprüft mithilfe von Javascript. Nur leider scheint das nicht ganz bei der JA/Nein-Abfrage zu funktionieren und ich weiß nicht wieso. Das Formular darf erst dann verschickt werden, wenn der Radio-Button auf JA gestellt ist. Wenn NEIN angeklickt ist wird es mit den anderen fehlenden Eingaben im PopUp amit aufgelistet. Wo liegt mein Fehler? Kann mir jemand weiterhelfen? Danke!
<html> <head> <title>Jobformular</title> <script type="text/javascript"> <!-- function kontrolle() { var vollstaendig = "";
var missing = "Folgende Daten fehlen:\n"; if(document.Jobformular.vname.value == "") missing += "- Vorname\n"; if(document.Jobformular.name.value == "") missing += "- Name\n"; if(document.Jobformular.strasse.value == "") missing += "- Strasse\n"; if(document.Jobformular.plz.value == "") missing += "- PLZ u Ort\n"; if(document.Jobformular.tel.value == "") missing += "- Telefon\n"; if(document.Jobformular.gebdatum.value == "") missing += "- Geburtsdatum\n"; if(document.Jobformular.land.value == "") missing += "- Land\n"; if(document.Jobformular.ausbildung.value == "") missing += "- Ausbildung\n"; if(document.Jobformular.erfahrung.value == "") missing += "- Erfahrung\n"; if(document.Jobformular.auszeichnung.value == "") missing += "- Auszeichnungen\n"; if(document.Jobformular.erwartung.value == "") missing += "- Erwartungen\n"; <!-- hier kommt die JA/NEIN-Abfrage _____________________________________________ --> if(document.Jobformular.verstanden.value == "nein") missing += "- Einverstaendnis\n"; <!-- ____________________________________________________________________________ -->
if(missing != "Folgende Daten fehlen:\n") { alert(missing); vollstaendig += "nein"; }
if(vollstaendig.indexOf('nein') == -1) { document.Jobformular.submit(); } } //--> </script> </head> <body> <form action="jobform.php" method="post" name="Jobformular"> <table width="608" border="1" cellspacing="4" cellpadding="0" align="center" bordercolor="#000000"> <tr> <td> <table width="600" border="0" cellpadding="2" cellspacing="2" class="inhalt_weiss"> <tr> <td width="105" class="inhalt_weiss" valign="top"><b>Bewerbung als:</b></td> <td colspan="2"> <table width="100%" border="0" cellspacing="0" cellpadding="3"> <tr> <td width="13%" class="inhalt_blau"> </td> <td class="inhalt_blau"> <input type="text" name="arbeit" size="60"> </td> </tr> </table> </td> </tr> <tr> <td colspan="3" height="2" class="inhalt_weiss"></td> </tr> <tr> <td width="105" class="inhalt_weiss" valign="top"><b>Bewerber:</b></td> <td colspan="2"> <table width="100%" border="0" cellpadding="3" cellspacing="0"> <tr> <td width="13%" class="inhalt_blau"> <div align="right">Vorname</div> </td> <td width="37%" class="inhalt_blau"> <input name="vname" type="text" size="30"> </td> <td width="13%" class="inhalt_blau"> <div align="right">Name</div> </td> <td width="37%" class="inhalt_blau"> <input name="name" type="text" size="30"> </td> </tr> <tr> <td width="13%" class="inhalt_blau"> <div align="right">Strasse/Nr</div> </td> <td width="37%" class="inhalt_blau"> <input type="text" name="strasse" size="30"> </td> <td width="13%" class="inhalt_blau"> <div align="right">Geburtsdatum</div> </td> <td width="37%" class="inhalt_blau"> <input name="gebdatum" type="text" size="30"> </td> </tr> <tr> <td width="13%" class="inhalt_blau"> <div align="right">PLZ/Ort</div> </td> <td width="37%" class="inhalt_blau"> <input type="text" name="plz" size="30"> </td> <td width="13%" class="inhalt_blau"> <div align="right">Land</div> </td> <td width="37%" class="inhalt_blau"> <input name="land" type="text" size="30"> </td> </tr> </table> </td> </tr> <tr> <td colspan="3" height="2" class="inhalt_weiss"></td> </tr> <tr> <td width="105" class="inhalt_weiss" valign="top"> <b>Kontakt:</b></td> <td colspan="2"> <table width="100%" border="0" cellpadding="3" cellspacing="0"> <tr> <td width="13%" class="inhalt_blau"> <div align="right">Email</div> </td> <td width="37%" class="inhalt_blau"> <input type="text" name="email" size="30"> </td> <td width="13%" class="inhalt_blau"> <div align="right">Telefon</div> </td> <td width="37%" class="inhalt_blau"> <input name="tel" type="text" size="30"> </td> </tr> </table> </td> </tr> <tr> <td colspan="3" height="2" class="inhalt_weiss"></td> </tr> <tr> <td width="105" class="inhalt_weiss"></td> <td width="258" class="inhalt_blau"><b>Ausbildung und Qualifikation</b></td> <td width="221" class="inhalt_blau"><b>Berufserfahrung</b></td> </tr> <tr> <td width="105" class="inhalt_weiss"></td> <td width="258" class="inhalt_blau"> <textarea name="ausbildung" cols="34" rows="3"></textarea> </td> <td width="221" class="inhalt_blau"> <textarea name="erfahrung" cols="34" rows="3"></textarea> </td> </tr> <tr> <td width="105" class="inhalt_weiss"></td> <td width="258" class="inhalt_blau"><b> was mich auszeichnet </b></td> <td width="221" class="inhalt_blau"><b>was ich erwarte</b></td> </tr> <tr> <td width="105" class="inhalt_weiss"></td> <td width="258" class="inhalt_blau"> <textarea name="auszeichnung" cols="34" rows="3"></textarea> </td> <td width="221" class="inhalt_blau"> <textarea name="erwartung" cols="34" rows="3"></textarea> </td> </tr> <tr> <td colspan="3" class="inhalt_blau"> Hiermit erkläre ich mich einverstanden, dass meine Angaben zu Zwecken des internen Gebrauchs von der Firma GmbH & Co. KG vorübergehend gespeichert und verwendet werden. Die uns übermittelten Daten werden streng vertraulich behandelt und gemäss den Vorschriften des Bundesdatenschutzgesetzes verarbeitet. Nach Abschluss des Bewerbungsverfahrens werden Ihre Daten gelöscht.<br> <!-- hier sind die Radio-Buttons ______________________________________ -->
<div align="right"> ja <input type="radio" name="verstanden" value="ja" checked > nein <input type="radio" name="verstanden" value="nein"> </div> </td> </tr> <tr> <td colspan="3"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td align="CENTER" class="inhalt_weiss"> <A HREF="javascript:document.Jobformular.reset()"> <b><font color="#000000">Einträge löschen</font></b></A> </td> <td align="CENTER" class="inhalt_weiss"> <A HREF="javascript:kontrolle()"> <b><font color="#000000">Abschicken</font></b></A> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </form> <br> </body> </html>
hi,
Hallo! Ich habe ein Bewerbungsformular, welches vor dem Abschicken noch die Einträge überprüft mithilfe von Javascript.
dir ist hoffentlich klar, dass einfaches deaktivieren von javascript deine abfrage hinfällig macht - um eine serverseitige überprüfung der daten kommst du also nicht herum.
javascript kann hier allenfalls komfort für den benutzer bieten, aber keine sicherheit in bezug auf das, was beim server ankommt.
Wo liegt mein Fehler?
du versuchst den radio-button über sein value anzusprechen - das ist aber hier unsinnig.
sieh dir http://selfhtml.teamone.de/javascript/objekte/elements.htm#checked, dann weisst du wie es richtig geht.
gruss,
wahsaga
Hi!
dir ist hoffentlich klar, dass einfaches deaktivieren von javascript deine abfrage hinfällig macht - um eine serverseitige überprüfung der daten kommst du also nicht herum.
javascript kann hier allenfalls komfort für den benutzer bieten, aber keine sicherheit in bezug auf das, was beim server ankommt.
ja, ich weiß. Aber das macht nichts...
du versuchst den radio-button über sein value anzusprechen - das ist aber hier unsinnig.
jetzt wo du es sagst fällt es mir auch wieder ein... danke dir!
Christian
Hallo,
<!-- hier kommt die JA/NEIN-Abfrage _____________________________________________ -->
if(document.Jobformular.verstanden.value == "nein") missing += "- Einverstaendnis\n";
Es gibt hier kein eindeutiges Element "verstanden". Es gibt ein Array document.Jobformular.verstanden[0] und document.Jobformular.verstanden[1], wobei bei jeweils einem der Array-Elemente die Eigenschaft checked gleich true ist, beim anderen false.
if(document.Jobformular.verstanden[0].checked == false) missing += "- Einverstaendnis\n";
<!-- ____________________________________________________________________________ -->
...
//-->
</script>
</head>
<body>
...
<!-- hier sind die Radio-Buttons ______________________________________ -->
<div align="right"> ja
<input type="radio" name="verstanden" value="ja" checked >
nein
<input type="radio" name="verstanden" value="nein">
</div>
...
Schau mal, wie Radio-Buttons hier angesprochen werden:
http://selfhtml.teamone.de/javascript/objekte/elements.htm#checked
viele Grüße
Axel
Ich danke dir sehr, jetzt funtioniert es alles. Bis dann mal!
Christian