user103109 Geschrieben 28. August 2003 Geschrieben 28. August 2003 Hallo, habe mit JavaScript eine Funktion erstellt, die nur Text als Eingabe im Formularfeld zulässt: <form action="insert.php" method="post" name="formular"> <p>Kundennummer<br> <input name="kundennummer" type="text" size="8" maxlength="8"> </p> <input type=button value=speichern name=submitbutton onClick="pruefe_eingabe();"> </form> <script language="javascript"> function pruefe_eingabe() { if ((document.formular.kundennummer.value * 1) != document.formular.kundennummer.value) { alert("Bitte geben Sie eine Zahl ein."); } else { document.formular.submit(); } } </script> Jedoch nimmt er noch Buchstaben an, wenn ich auf "Enter" drücke. Wie kann ich auch das auch noch unterbinden ? Zitieren
arcy Geschrieben 28. August 2003 Geschrieben 28. August 2003 müsste meiner meinung nach so aussehen (siehe: onSubmit): <form action="insert.php" method="post" name="formular" onSubmit="return pruefe_eingabe();"> <p>Kundennummer<br> <input name="kundennummer" type="text" size="8" maxlength="8"> </p> <input type=button value=speichern name=submitbutton > </form> <script language="javascript"> function pruefe_eingabe() { if ((document.formular.kundennummer.value * 1) != document.formular.kundennummer.value) { alert("Bitte geben Sie eine Zahl ein."); return false; } else { document.formular.submit(); return true;} } </script> Zitieren
user103109 Geschrieben 28. August 2003 Autor Geschrieben 28. August 2003 Sieht gut aus, danke. Allerdings kommt jetzt die Fehlermeldung nur, wenn ich auf Enter drücke. Wenn ich den Button drücke, passiert gar nichts mehr (auch bei richtiger Eingabe). Zitieren
arcy Geschrieben 28. August 2003 Geschrieben 28. August 2003 komisch .... dann führ das onClick - Event halt wieder ein Zitieren
kills Geschrieben 28. August 2003 Geschrieben 28. August 2003 <form action="....." onSubmit="check( this);"> <input type="submit" value="drück"> </form> function check( oInputField) { if ("13" == window.event.keyCode) { return false; } return true; } so sollte es gehen ist aber nicht getestet Zitieren
user103109 Geschrieben 28. August 2003 Autor Geschrieben 28. August 2003 Ne, das klappt irgendwie gar nicht. Ich habe da plötzlich einen neuen Button mit der Aufschrift "Anfrage senden" drinne und mein Formularfeld ist verschwunden. Zitieren
user103109 Geschrieben 28. August 2003 Autor Geschrieben 28. August 2003 Jetzt klappt es: form action="insert.php" method="post" name="formular" onSubmit="return pruefe_eingabe();"> <p>Kundennummer<br> <input name="kundennummer" type="text" size="8" maxlength="8"> </p> <input type=button value=speichern name=submitbutton onClick="return pruefe_eingabe();"> </form> <script language="javascript"> function pruefe_eingabe() { if ((document.formular.kundennummer.value * 1) != document.formular.kundennummer.value) { alert("Bitte geben Sie eine Zahl ein."); return false; } else { document.formular.submit(); return true;} } </script> Danke für Eure Hilfe. EDIT: Neiiin. Eine Sache habe ich noch vergessen: Wenn ich das Formularfeld komplett leer lasse, soll auch diese Meldung erscheinen. Es soll quasi eine Eingabe erzwungen werden. Man, das wird ja immer komplizierter....:eek: Zitieren
kills Geschrieben 28. August 2003 Geschrieben 28. August 2003 . . . if ((document.formular.kundennummer.value * 1) != document.formular.kundennummer.value) . . . Was ist das fürn Sinnloser vergleich? lösungvorschlag von mir: <script language="javascript"> function pruefe_eingabe() { if (isNaN(parseInt(document.formular.kundennummer.value, 10)) || dument.formular.kundennummer.value.length == 0) { alert("Bitte geben Sie eine Zahl ein."); return false; } else { document.formular.submit(); return true; } } </script> Zitieren
user103109 Geschrieben 29. August 2003 Autor Geschrieben 29. August 2003 @kills Ich habe Deinen Lösungsvorschlag auch nochmal ausprobiert und es klappt fast: - Richtige Eingabe mit Enter (klappt) - Richtige Eingabe mit Button (klappt) - Leeres Feld mit Enter (klappt) - Leeres Feld mit Button (klappt) - NUR Buchstaben mit Enter (klappt) - NUR Buchstaben mit Button (klappt) - Mischung Buchstaben/Zahlen erstes Zeichen ein Buchstabe klappt mit Button und Enter Aber: Mischung Buchstaben/Zahlen und erstes Zeichen eine Zahl klappt nicht mit Button und Enter So, ich glaube ich habe jetzt alle Möglichkeiten durch. Aber es ist immer noch nicht perfekt. Kann es sein, dass das alles mit dem einem Button nicht zu machen ist bzw. dass man den einen Button nicht mit mehreren Funktionen gleichzeitig belegen kann ? Zitieren
kills Geschrieben 29. August 2003 Geschrieben 29. August 2003 versuchs ma so: <script language="javascript"> function pruefe_eingabe() { if (isNaN(document.formular.kundennummer.value, 10) || dument.formular.kundennummer.value.length == 0) { alert("Bitte geben Sie eine Zahl ein."); return false; } else { document.formular.submit(); return true; } } </script> jetzt sollten alle deine Bedürfnisse befriedigt sein Zitieren
user103109 Geschrieben 29. August 2003 Autor Geschrieben 29. August 2003 Hurra, danke @kills. :uli Endlich klappt es. Zitieren
user103109 Geschrieben 1. September 2003 Autor Geschrieben 1. September 2003 @kills Mist, ich habe doch noch ein Zeichen gefunden, dass auch nicht sein darf: "." der Punkt. Den interpretiert er wohl als Dezimal-Komma und denkt deshalb, dass es sich um eine Zahl handelt. Wie kriege ich den auch noch ausgeschlossen ? Die anderen Sonderzeichen (!"§$% etc.) sind ok. Zitieren
user103109 Geschrieben 1. September 2003 Autor Geschrieben 1. September 2003 Und noch zwei Zeichen nimmt er verbotenerweise an: "-" und "+" vor der Zahl, weil er dann denkt es sei eine negative bzw. positive Zahl.... Zitieren
kills Geschrieben 1. September 2003 Geschrieben 1. September 2003 soll heißen, dass nur ganzzahlen und ohne vorzeichen richtig sein sollen? Zitieren
kills Geschrieben 1. September 2003 Geschrieben 1. September 2003 <script language="javascript"> function pruefe_eingabe() { oElement = document.formular.kundennummer; if (isNaN(parseInt(oElement.value, 10)) || oElement.value.length == 0) { alert("Bitte geben Sie eine Zahl ein."); return false; } else { document.formular.submit(); return true; } } </script> versuch das ma Zitieren
user103109 Geschrieben 1. September 2003 Autor Geschrieben 1. September 2003 @kills Richtig, es sind nur Ganzzahlen erlaubt ohne +, -, Punkte oder sonstige Zeichen die die Tastatur hergibt . Habe Deine Lösung nochmal ausprobiert, aber es klappt immer noch nicht. Es klappt nur, wenn ich ausschließlich einen Punkt ins Formular eingebe, aber nicht Zahlen und Punkte (bzw. + und -) gemischt. Ich denke auch, dass die erste Lösung schon gut ist. Nur muss ich irgendwie versuchen, in der "if-Anweisung" zusätzlich noch die genannten Zeichen explizit zu "verbieten". Und da weiß ich halt nicht weiter. Zitieren
kills Geschrieben 1. September 2003 Geschrieben 1. September 2003 notlösung: <script language="javascript"> function pruefe_eingabe() { oElement = document.formular.kundennummer; if (isNaN(oElement.value) || oElement.value.length == 0 || oElement.value.lastIndexOf(".")>0 ||oElement.value.lastIndexOf("+")>0 || oElement.value.lastIndexOf("-")>0) { alert("Bitte geben Sie eine Ganzzahl ein."); return false; } else { document.formular.submit(); return true; } } </script> Zitieren
user103109 Geschrieben 1. September 2003 Autor Geschrieben 1. September 2003 Danke für Deine Mühe kills. Es klappt aber immer noch nicht 100%ig. Folgende Kombinationen bereiten ihm immer noch Schwierigkeiten: "-Zahl" "+Zahl" ".Zahl" Also praktisch überall, wo verbotene Zeichen mit erlaubten Zeichen gemischt werden. Aber z.B. ".+-" als Eingabe geht einwandfrei, ebenso wenn ich die 3 Zeichen jeweils einzeln eingebe. Ebenso klappt es mit -10.56 oder +456.546 etc. Sehr merkwürdig. Vielleicht sollte man das umgekehrt machen: Alle Tasten vom Keyboard sperren und die Ziffern 0-9 erlauben. Geht sowas auch ? Zitieren
kills Geschrieben 1. September 2003 Geschrieben 1. September 2003 jetzt aber, getestet und funzt <script language="javascript"> function pruefe_eingabe() { oElement = document.formular.kundennummer; if (isNaN(oElement.value) || oElement.value.length == 0 || oElement.value.lastIndexOf(".") < 0 || oElement.value.lastIndexOf("+") < 0 || oElement.value.lastIndexOf("-") < 0) { alert("Bitte geben Sie eine Ganzzahl ein."); return false; } else { document.formular.submit(); return true; } } </script> Zitieren
user103109 Geschrieben 1. September 2003 Autor Geschrieben 1. September 2003 Es klappt fast, nur jetzt kommt der Alert bei jeder Eingabe, auch bei normalen Ganzzahlen, die ja erlaubt sind. Man ist das eine schwierige Geburt mal wieder... Langsam blicke ich gar nix mehr. Zitieren
kills Geschrieben 1. September 2003 Geschrieben 1. September 2003 hab bald kein bock mehr. du könntest auch ma die 2 möglichkeiten durch versuchen die noch übrig geblieben sind: nu aber: <script language="javascript"> function pruefe_eingabe() { oElement = document.formular.kundennummer; if (isNaN(oElement.value) || oElement.value.length == 0 || oElement.value.lastIndexOf(".") >= 0 || oElement.value.lastIndexOf("+") >= 0 || oElement.value.lastIndexOf("-") >= 0) { alert("Bitte geben Sie eine Ganzzahl ein."); return false; } else { document.formular.submit(); return true; } } </script> Zitieren
user103109 Geschrieben 1. September 2003 Autor Geschrieben 1. September 2003 Vielen Dank, scheint jetzt endlich zu klappen. Ich hatte überall schon herumprobiert, hatte aber das Gleichzeichen aber auf der falschen Seite gesetzt. Da klappt es natürlich nicht. Langsam tun mir aber auch schon die Augen weh. :cool: Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.