Eingabe mit Zeichenbegrenzung
Sabine Hold
- javascript
0 Danny
Hallo,
ich möchte gerne eine Eingabezeile erstellen, die in der Zeichenbegrenzung eigentlich auf 300 Zeichen begrenzt ist, außer jemand gibt etwas spezielles ein, dann soll es beispielsweise nur noch auf 30 Zeichen begrenzt sein!
Beispiel:
Eingabe: lalala test 123 (bis 300 Zeichen zulässig)
Eingabe enthält: "info" (bis 30 Zeichen zulässig)
Wäre nett wenn jemand Rat wüsste, ich bekomme das noch nicht so ganz alleine hin :-(
Vielen lieben Dank an Euch alle
Eure Sabine
Hi,
mhmmm... Was meinst Du mit Eingabezeile, ein <input> Formular-Feld?
Dann sieht der HTML-Code etwa so aus:
<input name="foo" type="text" size="30" maxlength="300">
Um die Eigenschaften des Felds dynamisch anzupassen brauchst Du etwas Javascript.
Soll die Begrenzung in Echtzeit während der Eingabe erfolgen, wirds kompliziert, da ein Eventhandler nach jedem Tastendruck eine Eingabe-Prüfung aufrufen müßte, um die Eigenschaft maxlength ggf. dynamisch auf 30 runterzusetzen...
Einfacher wäre es, zunächst immer 300 Zeichen zu erlauben und erst nach der kompletten Eingabe zu prüfen, per onClick-Event. Der Text könnte so auch nachträglich modifiziert werden, wobei der Rest des Strings einfach abgeschnitten wird.
freundlichen Gruß
Danny
Hi,
Hallo :-)
mhmmm... Was meinst Du mit Eingabezeile, ein <input> Formular-Feld?
Dann sieht der HTML-Code etwa so aus:
<input name="foo" type="text" size="30" maxlength="300">
Ja, genau so ein Feld habe ich eingebunden!
Soll die Begrenzung in Echtzeit während der Eingabe erfolgen, wirds kompliziert, da ein Eventhandler nach jedem Tastendruck eine Eingabe-Prüfung aufrufen müßte, um die Eigenschaft maxlength ggf. dynamisch auf 30 runterzusetzen...
Einfacher wäre es, zunächst immer 300 Zeichen zu erlauben und erst nach der kompletten Eingabe zu prüfen, per onClick-Event. Der Text könnte so auch nachträglich modifiziert werden, wobei der Rest des Strings einfach abgeschnitten wird.
Also die Eingabe soll per Return-Taste abgeschickt werden, es wäre aber auch möglich die Zeichen wie Du sagtest abzuschneiden ab 30 Zeichen, das wäre auch OK :-) wie ich einen JavaScript- Code einbinde weiß ich, aber nicht genau wie der aussehen könnte :-(
freundlichen Gruß
Danny
Liebe Grüsse
Sabine
wie ich einen JavaScript- Code einbinde weiß ich, aber nicht genau wie der aussehen könnte :-(
Er könnte so aussehen (ungetestet):
Javascript (in <head> einbauen):
function checkFormular()
{
var feld = document.formular.feld1.value;
if ( feld.search(/info/) )
{
document.formular.feld1.value = feld.substr(0,30);
}
return true;
}
HTML:
<form name="formular" method="post" onSubmit="return checkFormular()">
<input name="feld1" type="text" size="30" maxlength="300">
<input type="submit" value="Absenden">
</form>
Quellen:
http://de.selfhtml.org/javascript/beispiele/formulareingaben.htm
http://de.selfhtml.org/javascript/objekte/regexp.htm
http://de.selfhtml.org/javascript/objekte/string.htm
freundlichen Gruß
Danny
Ups! Da waren noch Fehler drin.
Hier eine neue Version, diesmal mit Hinweismeldung statt abschneiden der Zeichenkette.
function checkFormular()
{
var feld = document.formular.feld1.value;
if ( feld.length > 30 && !feld.search(/.*info.*/) )
{
alert("Die Eingabelänge ist auf 30 Zeichen beschränkt!");
// document.formular.feld1.value = feld.substr(0,30);
document.formular.feld1.focus();
return false;
}
return true;
}
freundlichen Gruß
Danny