Felder überprüfen
Curse
- javascript
Hallo Leute.
Ich habe 2 Eingabefelder die ich mittels Javascript überprüfe ob beide ausgefüllt sind. Nur haut das nicht ganz so hin wie ich mir das vorstelle. Vielleicht weiß jemand von euch wie ich das am logischten machen kann??
Hier mein Quellcode:
<body>
<form name="Testform" action="Berechnug.asp" method="post">
<input size="6" name="KPA00" value="0">
<input size="6" name="DM00" value="0" >
<input type="button" name="derButton" value="Weiter" onClick="Check()" onClick="Check1">
</form>
<script type="text/javascript">
<!--
function Check() {
if(document.Testform.KPA00.value != "0" && document.Testform.DM00.value == "0")
alert("Feld 2 ausfüllen");
else
document.Testform.submit();
if(document.Testform.DM00.value != "0" && document.Testform.KPA00.value == "0")
alert("Feld 1 ausfüllen");
else
document.Testform.submit();
}
//-->
</script>
Moin,
Ich habe 2 Eingabefelder die ich mittels Javascript überprüfe ob beide ausgefüllt sind. Nur haut das nicht ganz so hin wie ich mir das vorstelle. Vielleicht weiß jemand von euch wie ich das am logischten machen kann??
ich denke folgendes Beispiel aus SELFhtml sollte hinreichend sein, um es nach Deinen Vorstellungen zu reproduzieren: http://selfhtml.teamone.de/javascript/beispiele/formulareingaben.htm#quelltext
Aber eines verstehe ich nicht: Dein Formular wird an eine ASP-Seite weiter gegeben. Warum machst Du die Überprüfung dann nicht gleich serverseitig?
MfG
MarkX.
Danke!! Hat super funktioniert, hab aber noch ein kleines Problem. Und zwar wenn ich jetzt z.B. 4 Eingabefelder habe.... Es wird mir zwar die Fehlermeldung angezeigt, danach wird der Wert aber gleich auf die 2te Seite übergeben, ohne dass ich den Fehler auch wirklich korregieren kann. Hmmmm, wie kann ich das am besten verhindern bitte???
<body>
<form name="Testform" action="Berechnug.asp" method="post">
<input size="6" name="KPA00" value="0">
<input size="6" name="DM00" value="0" ><br>
<input size="6" name="KPA01" value="0" >
<input size="6" name="DM01" value="0" ><br>
<input type="submit" name="derButton" value="Weiter" onClick="Check()" >
</form>
<script type="text/javascript">
<!--
function Check() {
if(document.Testform.KPA00.value != "0" && document.Testform.DM00.value == "0")
alert("Feld 2 ausfüllen");
else if(document.Testform.DM00.value != "0" && document.Testform.KPA00.value == "0")
alert("Feld 1 ausfüllen");
else
document.Testform.submit();
if(document.Testform.KPA01.value != "0" && document.Testform.DM01.value == "0")
alert("Feld 2 ausfüllen 2001");
else if(document.Testform.DM01.value != "0" && document.Testform.KPA01.value == "0")
alert("Feld 1 ausfüllen 2001");
else
document.Testform.submit();
}
//-->
</script>
Moin nochmal,
also mit Javascript kenne ich mich nicht sehr gut aus, aber ich verstehe Dein Problem nicht ganz. Das Beispiel von SELFhtml funktioniert unabhängig von der Anzahl der Eingabefelder.
Trotzdem noch einmal meine Frage: Wieso machst Du die Formularüberprüfung nicht serverseitig? Offensichtlich steht Dir ASP zur Verfügung. Also warum sich von clientseitiger Technologie abhängig machen?
MfG
MarkX.
Hallo MarkX
Danke, für das Beispiel. Ich weiß, es würde so auch gehn, nur ist es nicht ganz das was ich brauche.
Und ich würde das Formular gerne clientseitig kontrollieren, weil ich auf der gleichen Seite gleich die Fehlermeldung anzeigen würde und das funktioniert mittels Javascript recht gut. Mit ASP geht das nur, wenn ich die Seite neu lade, oder?? Und dann kann ich die Werte nicht weitergeben denk ich mal.
Lieben Gruss, Curse
Hallo Curse,
Danke, für das Beispiel. Ich weiß, es würde so auch gehn, nur ist es nicht ganz das was ich brauche.
In welcher Hinsicht ist es denn für Dich nicht von Nutzen?
Und ich würde das Formular gerne clientseitig kontrollieren, weil ich auf der gleichen Seite gleich die Fehlermeldung anzeigen würde und das funktioniert mittels Javascript recht gut. Mit ASP geht das nur, wenn ich die Seite neu lade, oder?? Und dann kann ich die Werte nicht weitergeben denk ich mal.
Na was macht denn die ASP-Seite mit den Formulardaten, die in Deinem action-Attribut als Ziel angegeben ist? Du könntest mit dieser ASP-Seite die Formulardaten überprüfen. Wenn die Auswertung einen Fehler ergibt rufst Du die Formularseite mit Response.Redirect wieder auf. Du könntest sogar die bereits eingegebenen Daten wieder an die Formularseite zurück geben, indem Du sie als URL-Paramater beim Redirect mit übergibst. Sofern es sich bei der Formularseite ebenfalls um ein ASP-Dokument handelt, setzt Du die entsprechenden Formularwerte wieder ein, indem Du mit Response.Write Request.QueryString("xyz") den URL-String ausliest und dynamisch in die entsprechenden Formularfelder einfügst.
MfG
MarkX.
Hallo Curse,
Es wird mir zwar die Fehlermeldung angezeigt, danach wird der Wert aber gleich auf die 2te Seite übergeben, ohne dass ich den Fehler auch wirklich korregieren kann. Hmmmm, wie kann ich das am besten verhindern bitte???
Einfach ein paar returns einfügen und ein paar submits rausnehmen:
<input type="submit" name="derButton" value="Weiter" onClick="Check()" >
<input type="submit" name="derButton" value="Weiter" onClick="return Check()"
function Check() {
if(document.Testform.KPA00.value != "0" && document.Testform.DM00.value == "0") {
alert("Feld 2 ausfüllen");
return false;
}
else if(document.Testform.DM00.value != "0" && document.Testform.KPA00.value == "0") {
alert("Feld 1 ausfüllen");
return false;
}
if(document.Testform.KPA01.value != "0" && document.Testform.DM01.value == "0") {
alert("Feld 2 ausfüllen 2001");
return false;
}
else if(document.Testform.DM01.value != "0" && document.Testform.KPA01.value == "0") {
alert("Feld 1 ausfüllen 2001");
return false;
}
return true;
}
Grüße
Andreas
Hallo,
<input type="button" name="derButton" value="Weiter" onClick="Check()" onClick="Check1">
Doppeltes onClick - das zweite dürfte überflüssig sein
function Check() {
if(document.Testform.KPA00.value != "0" && document.Testform.DM00.value == "0")
alert("Feld 2 ausfüllen");
else
document.Testform.submit();if(document.Testform.DM00.value != "0" && document.Testform.KPA00.value == "0")
alert("Feld 1 ausfüllen");
else
document.Testform.submit();}
Springt er in der ersten if-Abfrage in den else-Zweig, wird die zweite Abfrage nicht erreicht. Eine Möglichkeit das zu umgehen wäre:
function Check() {
if(document.Testform.KPA00.value != "0" && document.Testform.DM00.value == "0")
alert("Feld 2 ausfüllen");
else if(document.Testform.DM00.value != "0" && document.Testform.KPA00.value == "0")
alert("Feld 1 ausfüllen");
else
document.Testform.submit();
}
Grüße,
Utz
Hi
<input type="button" name="derButton" value="Weiter" onClick="Check()" onClick="Check1">
Das is jawohl blödsinn ;) nur ein onClick event bitte :) check1 ist außerdem nicht definiert.
ich nehm mal an, du wilslt überprüfen, ob eines der beiden felder als wert "0" hat, also:
<script type="text/javascript">
<!--
function Check() {
if(document.Testform.KPA00.value == "0") {
alert("Feld 1 ausfüllen");
return false;
}
else if(document.Testform.DM00.value == "0) {
alert("Feld 2 ausfüllen");
return false;
}
else {
document.Testform.submit();
return true;
}
//-->
</script>
Gruß
Phil