zeichenanzahl textareafeld
Hans
- javascript
Bei folgenden Script wird das erste Zeichen bei der Eingabe nicht abgezogen und nach dem letzten Zeichen (nach der Alertmeldung) erscheint ein weiteres Zeichen. Wer kann mir helfen das Script korrekt zum laufen zu bringen.
<html>
<head>
<title>Neue Seite 1</title>
<script language="JavaScript">
function zeichen()
{
var max = 150;
var doc1 = document.formular.hobbys.value;
var l = doc1.length + 1;
var ll = max - l +1;
if ( ll < 0 ) {
ll = 0;
}
document.formular.zeichen2.value = '(noch ' + ll +' Zeichen) '
if (doc1.length>max-1) {
alert(max + ' Zeichen erreicht!');
}
}
</script>
</head>
<body>
<form name="formular" action="" method="post">
<table>
<tr>
<td></td>
<td><input type="text" name="zeichen2" value="(Maximal 150 Zeichen)" readonly style="border:0;background-color:#0099ff;color:#ffffff;font-size:8pt" /></td>
</tr>
<tr>
<td valign="top">Hobbys:</td>
<td><textarea name="hobbys" rows="3" cols="25" wrap="virtual" onKeyDown="zeichen()" onClick="zeichen()"></textarea></td>
</tr>
</table>
</form>
</body>
</html>
ich weiß leider keinen Rat, ich habe das selbe Problem ....
Gruß
Katja
Hallo Hans,
<td><textarea name="hobbys" rows="3" cols="25" wrap="virtual" onKeyDown="zeichen()" onClick="zeichen()"></textarea></td>
ersetze mal onKeyDown durch onKeyUp, dann sollte es funktionieren.
Grüße
Andreas
das haben wir schon probiert, es brachte nichts
Hallo Hans,
hier ein Vorschlag, wie es geht:
function zeichen()
{
var max = 150;
var doc1 = document.formular.hobbys.value;
var l = doc1.length + 1;
var ll = max - l + 1;
if ( ll < 0 ) {
ll = 0;
}
document.formular.zeichen2.value = '(noch ' + ll +' Zeichen) '
// Erst meckern, wenn größer als maximale Anzahl
if (doc1.length>max) {
alert(max + ' Zeichen erreicht!');
// Nicht zulässige Zeichen abschneiden
document.formular.hobbys.value = doc1.substring(0, max);
}
}
[...]
// Erst prüfen, wenn Zeichen geschrieben wurde
<td><textarea name="hobbys" rows="3" cols="25" wrap="virtual" onKeyUp="zeichen();" onClick="zeichen()"></textarea></td>
Grüße
Andreas