# Textarea maximal 100 Zeichen?



## chpa (6. April 2004)

Ich bin gerade dabei ein Formular zu erstellen. In diesem Formular ist eineTextarea enthalten. Jetzt möchte ich diese Textarea so programmieren, dass man nur max. 100 Zeichen darin schreiben kann.

Meine Frage: Wie macht man das?


----------



## Helge (6. April 2004)

Bei <INPUT> feldern kannst du die Anzahl der Zeichen per Attribut: 

maxlength="100"

begrenzen, weiß aber nicht ob das auch bei Textareas geht. Kannste ja mal ausprobieren


----------



## chpa (6. April 2004)

Dankeschön
Ich probiers gleich mal aus.

Echt klasse, dass das so schnell ging.

Mfg
Patte


----------



## Xaicon (6. April 2004)

> _Original geschrieben von Helge _
> *Bei <INPUT> feldern kannst du die Anzahl der Zeichen per Attribut:
> 
> maxlength="100"
> ...


Das wage ich zu bezweifeln.
Es gäbe noch eine Möglichkeit über einen Javascript den Benutzer eine Meldung anzuzeigen, wenn er die max. Anzahl der Zeichen erreicht.

```
<script type="text/javascript">
function Aktualisieren() {
  var stop = document.Test.Eingabe.value.length;
  if( stop == 100) {alert("Die maximale Anzahl an Zeichen ist erreicht.")}
  return true;
}
</script>
</head><body>
<form name="Test" action="">
<textarea name="Eingabe" onKeyDown="Aktualisieren(this.value)"></textarea>
</form>
```


----------



## Fabian H (6. April 2004)

Ein maxlength-Attribut oder etwas Vergleichbares gibt es für die Textarea eider nicht.

Du kannst es dir aber mit JavaScript selber zusammenbasteln:

```
<script type="text/javascript">

function checkInput(a_oEvent, a_iLength)
{
    iKeyCode = 0;

    if (navigator.appName == 'Netscape') {
        iKeyCode = a_oEvent.which;
    } else if (window.document.all) {
        iKeyCode = event.keyCode;
    }

    if ((a_iLength > 100) && (iKeyCode >= 32)) {
        return false;
    }

    return true;
}

</script>

<textarea style="width:300px;height:200px;" onkeypress="return checkInput(event, this.value.length);"></textarea>
```
Was macht der Code?
Der Event-Handler onkeypress sorgt hier dafür, dass ebi jedem Tastendruck (und dazu gehört z.B. auch die Enter Taste oder _Strg + V_ um Text einzufügen)
die JavaScript-Funktion _checkInput_ aufgerufen wird
Als Parameter werden übergeben:
1) Das _event_-Objekt. Ist wichtig, damit das ganze auch unter Mozilla läuft.
2) Die Länge des Textes, der in der Textarea steht.

Danach wird _iKeyCode_ mit dem ASCII-Code der Taste, die man gedrückt hat belegt.
Nun wird geprüft, ob die Läng der Textarea die 100 zeichen erreicht hat.
Wenn ja, wird zusätzlich noch geprüft, ob man gerade auch wirklich ein Zeichen eingeben, und nicht z.B. den Cursor bewegen will (Das wird durch den Check des keyCodes erreicht).
Wenn man also ein Zeichen eingeben will und die Textarea hat bereits schon 100 Zeichen, dann wird _false_ zurückgegeben und das Zeichen nicht in die textarea eingetragen.

Was bringt die Überprüfung des KeyCodes?
Wenn diese nicht wäre, würde nach 100 Zeichen jede Aktion, die durch einen Testendruck ausgelöst wird, abgebrochen.
Also auch die Tab-Taste, die Cursortasten, die Backspace-Taste, und so weiter.


----------

