Zum Inhalt springen

Formular abschicken mit "Enter" unterbinden


user103109

Empfohlene Beiträge

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 ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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:

Link zu diesem Kommentar
Auf anderen Seiten teilen

.

.

.

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>

Link zu diesem Kommentar
Auf anderen Seiten teilen

@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 ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

<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

Link zu diesem Kommentar
Auf anderen Seiten teilen

@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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...