Überprüfen von Formularfeldern
SamanthaMaster
- javascript
1 Don P
Hy!!
Bei der Rechnung wird immer nur überprüft ob etwas drinnen steht und nicht ob es das richtige ist!! Könnt ihr mir sagen was falsch ist!!
<script type="text/javascript">
window.onload = function() {
document.Formular.onsubmit = function() {
var errors = [];
document.getElementById("falsch").innerHTML = "";
if (document.Formular.test.value == "" && document.Formular.test.value != "9")
errors.push("Testrechnung falsch");
for(var i=0; i<errors.length; i++)
document.getElementById("falsch").innerHTML += "" + errors[i] + "<br>";
return (errors.length == 0);
}
}
</script>
~~~<
~~~html
<font color=#FF0000><div id="falsch"></div></font> <form name="Formular" action="mailto:?" method="post" enctype="text/plain">
Name: <input name="benutzername" type="text" size="30" maxlength="30"><br>
E-mail: <input name="mail" type="text" size="30" maxlength="40"><br>
Anfrage:<br> <textarea name="eingabe" cols="40" rows="10"></textarea><br>
4+5= <input name="test" type="text" size="5"><br> <input name="absenden" type="submit" value="Absenden"> </form>
MFG samantha
Hallo,
Könnt ihr mir sagen was falsch ist!!
Klar, das da:
if (document.Formular.test.value == "" && document.Formular.test.value != "9")
heißt auf deutsch "wenn das Formularfeld leer ist *und* wenn nicht "9" drinsteht".
Logisch: Wenn es leer ist, steht auch nicht 9 drin, also ergibt der Ausdruck dann immer true
``, aber wenn es nicht leer ist, ergibt der Ausdruck immer false
, denn der zweite Teil (!=9)wird dann gar nicht mehr geprüft, weil schon der erste (=="") false
ergibt – eine UND-Verknüpfung mit false
ergibt bekanntlich immer false
.
Gruß, Don P