Sabine Hold: Eingabe mit Zeichenbegrenzung

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

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

    --
    Selfcode:      fo:) br:& n4:& ie:% mo:) va:| de:] zu:) fl:| ss:) ls:& ls:& js:|
    Selfcode Info: http://emmanuel.dammerer.at/selfcode.html
    Motto:         OpenSource - Das Wissen der Menschheit gehört der Welt!
    1. 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

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

        --
        Selfcode: fo:) br:& n4:& ie:% mo:) va:| de:] zu:) fl:| ss:) ls:& ls:& js:|
        Motto:    OpenSource - Das Wissen der Menschheit gehört der Welt!
        1. 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

          --
          Selfcode: fo:) br:& n4:& ie:% mo:) va:| de:] zu:) fl:| ss:) ls:& ls:& js:|
          Motto:    OpenSource - Das Wissen der Menschheit gehört der Welt!