HTML textfeld mit dynamischer größe?

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/html_textfeld_mit_dynamischer_groesze_188007/page_1 - zur Vollversion wechseln!


Umlüx schrieb am 19.11.2007 um 13:47

ich hab hier ein formular mit einem stinknormalen textfeld. größe momentan fix auf 4 zeilen.
der inhalt kommt aus einer datenbank. nun wär natürlich luxus wenn sich die größe vom textfeld an den inhalt anpasst damit man nicht dauernd scrollen muss.

irgendwie möglich?


fatmike182 schrieb am 19.11.2007 um 13:57

habs schonmal gesehn, war aber ajax. macht das evtl das gleiche? (habs nur kurz angeschaut, sry. kanns mir später genauer anschaun: http://www.djangosnippets.org/snippets/427/ von http://www.python-forum.de/viewtopi...18e82ddf37c7441)

alternativ kannst du auch eine Pfuschlösung machen und einfach eine Variable für die Rows setzen und fix vordefinieren, wenn 100 Zeichen, dann Rows=1, wenn >200 dann 2,... naja.


Umlüx schrieb am 19.11.2007 um 14:05

also bereits beim tippen muss ned sein, es reicht wenn er es beim laden festlegt.
zeichen zählen wär natürlich eine möglichkeit. wegen wortlängen und zeilenumbrüchen halt ned immer die idealste..


fatmike182 schrieb am 19.11.2007 um 14:10

Die Zeilenumbrüche kannst ja dazusählen (also wenn Zeilenumbruch, dann +1 row). Wähle eine Schriftart, die eine ungefähr gleiche zeichenausrichtung (Festbreitenschrift?) hat wie Courier New.
Sind da die Zeichen nicht gleich groß? (also kannst das Textfeld wirklich genau ausmessen?)


Umlüx schrieb am 29.11.2007 um 11:27

hm schriftart ist kein monospace. habs mit deinen links oben probiert, aber da haut er es mir immer auf 1 zeile zusammen.


sensei schrieb am 29.11.2007 um 11:35

hmm du könntest dir den text zusätzlich in einer Tabelle(einspaltig,einzeilig) mit gleicher breite ausgeben lassen. Nachdem die Tabellen ihre höhe automatisch anpasst kannst dann auch mit javascript die höhe der Tabelle auslesen und mit dieser höhe das textfedl setzen ?!
Tabelle natürlich mit display:none


pari schrieb am 29.11.2007 um 11:44

du könntest die länge des textes ermitteln und durch die anzahl der cols dividieren und somit hast du die benötigte anzahl von zeilen.

also auf SQL-isch, wenn 80 deine spaltenlänge fürs textfeld is: select foo, round(length(foo)/80) from tablename;

blöd wirds halt, wenn '\n' drinnen san


murcielago schrieb am 29.11.2007 um 12:46

Zitat von pari
blöd wirds halt, wenn '\n' drinnen san
... oder die schriftgröße eine andere ist
... oder die schriftart irgendeine ist
... oder
... oder
...


sensei schrieb am 29.11.2007 um 13:42

Zitat von pari
du könntest die länge des textes ermitteln und durch die anzahl der cols dividieren und somit hast du die benötigte anzahl von zeilen.

also auf SQL-isch, wenn 80 deine spaltenlänge fürs textfeld is: select foo, round(length(foo)/80) from tablename;

blöd wirds halt, wenn '\n' drinnen san


edit:
muss mich entschuldigen, textarea cols passt die breite der schriftart an, also könnte das so gehn wie du meintest.


fatmike182 schrieb am 29.11.2007 um 13:47

redest du von offsetHeight?
Kann man das nicht auch mit divs oder so machen? Dann würde man sich die Tabelle ersparen

http://msdn2.microsoft.com/en-us/library/ms530302.aspx


pari schrieb am 29.11.2007 um 13:55

ich glaub ich hab den thread zu schnell überflogen, i hätt glaubt, es geht um eine textarea, dort kann man ja die rows und cols angeben.


sensei schrieb am 29.11.2007 um 13:55

Zitat von fatmike182
redest du von offsetHeight?
Kann man das nicht auch mit divs oder so machen? Dann würde man sich die Tabelle ersparen

ja offsetHeight und ja natürlich gehts auch mitn div, ka warum ich table gschrieben hab :confused:


Umlüx schrieb am 29.11.2007 um 14:11

es geht ja auch um eine textarea.


pari schrieb am 29.11.2007 um 14:16

ja dann spielt ja der font, font size keine rolle, oder versteh ich da was net?


sensei schrieb am 29.11.2007 um 14:17

Zitat von pari
ja dann spielt ja der font keine rolle, oder versteh ich da was net?

jop, du hast eh recht, hab mich getäuscht (quote schon ausgebessert).

Zitat von umlüx
es geht ja auch um eine textarea.
var height = document.getElementById('divID').offsetHeight;
document.getElementById('textareaID').style.height = height;

aber ich würds mal so versuchen wie pari meinte ist die schönere lsg (wenns geht)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025