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.

Eingabe in Textfeld auf bestimmte Zeichen begrenzen

Empfohlene Antworten

Veröffentlicht

Hallo Allesamt,

ich hätte da mal ne kleine Frage: Ist es möglich, die Eingabemöglichkeit in ein HTML-Textfeld auf bestimmte Zeichen mit Hilfe von JavaScript zu begrenzen (dass z.B. bestimmte Character nicht eingegeben werden können)? Selfhtml und Goggle geben mir darüber leider keinen Aufschluss.

:confused:

Dana

Bei einem normalen Textfeld (<input type="text"...) kannst Du das sogar ohne JavaScript erreichen:


<input type="text" ... maxlength="30">

(Begrenzung auf 30 Zeichen)

Im Fall einer "Textarea" geht es nur per JavaScript: Du kannst mit Hilfe des EventHandlers "onkeypress" im Textarea-Tag bei jedem Tastendruck die Länge prüfen und ensprechend reagieren, z.B.

<textarea name="test".... onkeypress="checkText()"></textarea>

Die Funktion checkText könnte dann so aussehen:

function checkText() {

   var inhalt = new String( document.forms["form1"].test.value );

   if ( inhalt.length == 30 )

      ...

}

HTH,

Evil :cool:

Original geschrieben von EvilInside

Bei einem normalen Textfeld (<input type="text"...) kannst Du das sogar ohne JavaScript erreichen:



<input type="text" ... maxlength="30">

(Begrenzung auf 30 Zeichen)

HTH,

Evil :cool:

Eigentlich war das nicht gemeint. Ich wollte wissen wie man die Eingabe auf bestimmte Zeichen begrenzen kann (in diesem Fall auf die Ziffern 0-9).

Folgendes Szenario:

Ich hab einige Textfelder, welche variable Namen haben können (situationsbedingt, werden von der Java-Business-Klasse vergeben).

In diese Texfelder sollen nur Ziffern eingegeben werden. Ein Applet kommt nicht in Frage. Natürlich könnte ich eine falsche Eingabe abfangen, indem ich die Eingabe nach abschicken des Formulars prüfe und dementsprechend eine Fehlermeldung ausgebe.

Doch wäre eine Zeichenbegrenzung viel "schicker".

Gruß,

dana

OK, dann hatte ich den Begriff "Zeichenbegrenzung" falsch interpretiert :-).

Eine Begrenzung auf bestimmte Zeichen ist auch nicht wirklich ein Problem.

Wie schon gesagt, gibt es für Tastatur-Ereignisse sog. Event-Handler, z.B. "onkeypress", "onkeydown" oder "onkeyup".

Das Event-Objekt enthält u.a. den ASCII-Code der gedrückten Taste, so daß man dann relativ einfach entscheiden kann, ob die gedrückte Taste ok ist oder nicht.

Wird ein falsches Zeichen eingegeben, könntest Du dieses direkt wieder aus dem Textfeld entfernen.

Generell würde ich die Eingaben aber in jedem Fall auch serverseitig validieren -- sonst könnte man sämtliche Plausibilitätsprüfungen einfach durch Abschalten von JavaScript umgehen.

Die Validierung im Frontend/Client ist eigentlich eher eine Komfortfunktion für den User, da er direkt eine Rückmeldung erhält, wenn er etwas Falsches eingibt.

Evil :cool:

Original geschrieben von EvilInside

OK, dann hatte ich den Begriff "Zeichenbegrenzung" falsch interpretiert :-).

Eine Begrenzung auf bestimmte Zeichen ist auch nicht wirklich ein Problem.

Evil :cool:

Generell ist es ja auch kein Problem. Das Problem hierbei sind die variablen Feldnamen :(

Morgen schick ich mal nen Ausschnitt aus meiner Page und nen JavaScript-Code (der leider nicht funktioniert, da Feldname variabel)...

Gruß,

Dana

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.