Mrs. Olivander: html-Formular: Probleme mit manuellem Zeilenwechsel

Hi,

ich habe ein html-Formular, in das unter anderem längere Texte eingegeben werden sollen:
 - Maximal 500 Zeichen und
 - OHNE manuelle Zeilenumbrüche! D. h. beim Ausfüllen des Feldes soll kein Zeilenumbruch per Tastatur gesetzt werden.

Wenn ich das einzeilige Eingabefeld <INPUT TYPE="text" ...> nehme, ist ein Zeilenumbruch nicht erlaubt. Aber 500 Zeichen in ein input type=text Feld einzugeben ist nicht gerade usable.

Nehme ich das mehrzeilige Eingabefeld Textarea, kann ich den Text sehr gut und übersichtlich ausfüllen. Aber jetzt sind manuelle Zeilenumbrüche erlaubt.

Meine Frage 1:
--------------
Kann ich ein einzeiliges Feld größer/anders darstellen, so daß man beim Ausfüllen des Feldes den ganzen Text sieht?

Meine Frage 2:
--------------
Kann ich bei einer Textarea manuelle Zeilenumbrüche verbieten?

Meine Frage 3:
--------------
In welcher Form wird so ein Zeilenwechsel (return/enter) übertragen? Kann ich per codierung/decodierung das Zeichen ersetzen - vor dem Übertragen an den Server oder per Datenbankskript?

Andere Ideen zur Problemlösung sind natürlich auch willkommen :)

Grüße
Mrs. Olivander

  1. Hallo,

    Kann ich ein einzeiliges Feld größer/anders darstellen, so daß man beim Ausfüllen des Feldes den ganzen Text sieht?

    Glaube nicht. Und sicher nicht zuverlaessig in allen Browsern.

    Kann ich bei einer Textarea manuelle Zeilenumbrüche verbieten?

    Hoechstens mit JavaScript.
    Ich als Benutzer faende das allerdings sehr, sehr nervig.

    Mach einfach eine normale TEXTAREA.

    In welcher Form wird so ein Zeilenwechsel (return/enter) übertragen? Kann ich per codierung/decodierung das Zeichen ersetzen - vor dem Übertragen an den Server oder per Datenbankskript?

    Serverseitige Kontrolle und Bearbeitung ist das einzig sinnvolle.
    Auch die maximale Anzahl Zeichen solltest Du auf dem
    Server ueberpruefen.

    Unix und Mac OS X: \n (LF, ASCII 10)
    Mac Classic:       \r (CR, ASCII 13)
    Windows:           \r\n (CR LF, ASCII 13 10)

    Tip: Am besten machst Du ein sogenanntes Affenformular:
    http://www.dclp-faq.de/q/q-stil-normalform.html
    Wenn jemand mehr als 500 Zeichen eingibt oder sonstige
    Fehler hat, kriegt er das Formular nochmals angezeigt.

    Gruesse,

    Thomas

    1. Hi Thomas,

      danke Dir, es hat geklappt.

      Habe es auf dem Server vor dem Eintrag in der Datenbank abgefangen. Hier der Code (PL/SQL):

      wert_zum_eintragen := replace (wert_von_formular, chr(13)||chr(10), ' ');
       wert_zum_eintragen := replace wert_zum_eintragen, chr(13), ' ');
       wert_zum_eintragen := replace wert_zum_eintragen, chr(10), ' ');

      Grüße
      Mrs. Olivander

  2. Hi,

    • OHNE manuelle Zeilenumbrüche! D. h. beim Ausfüllen des Feldes soll kein Zeilenumbruch per Tastatur gesetzt werden.

    ersetze Zeilenumbrüche durch Leerzeichen.

    Kann ich ein einzeiliges Feld größer/anders darstellen, so daß man beim Ausfüllen des Feldes den ganzen Text sieht?

    Nein.

    Kann ich bei einer Textarea manuelle Zeilenumbrüche verbieten?

    Nein.

    In welcher Form wird so ein Zeilenwechsel (return/enter) übertragen?

    So, wie das System des Benutzers es definiert. Meist sind es die Zeichenketten \n, \r\n oder \r.

    Kann ich per codierung/decodierung das Zeichen ersetzen - vor dem Übertragen an den Server oder per Datenbankskript?

    Wieso davor? Beim Server ist das wesentlich besser aufgehoben, zumal Du Dich nur dort darauf verlassen kannst, dass es funktioniert.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes