html-Formular: Probleme mit manuellem Zeilenwechsel
Mrs. Olivander
- html
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
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
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
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