Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Formular abschicken mit "Enter" unterbinden

Empfohlene Antworten

Veröffentlicht

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 ?

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>

komisch .... dann führ das onClick - Event halt wieder ein



<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

  • Autor

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:

.

.

.

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>

  • Autor

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

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

  • Autor

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

soll heißen, dass nur ganzzahlen und ohne vorzeichen richtig sein sollen?

<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

  • Autor

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

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>

  • Autor

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 ?

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>

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>

  • Autor

Vielen Dank, scheint jetzt endlich zu klappen.

Ich hatte überall schon herumprobiert, hatte aber das Gleichzeichen aber auf der falschen Seite gesetzt. :P Da klappt es natürlich nicht.

Langsam tun mir aber auch schon die Augen weh. :cool:

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.