Il duplicato suggerito è la domanda in cui ho ottenuto la base per questa domanda, quindi è non un un duplicato! È un dato di fatto, ho già hanno collegato a questa domanda fin dall'inizio ...Ridimensionamento forzato durante la lettura del testo dal file
BUONA EDIT:
ho fatto un JSFiddle (la mia prima volta :)). Si noti come la textarea non si espande come si vorrebbe. Digitare qualcosa all'interno dell'area di testo e verrà ridimensionato immediatamente.
Se possiamo inviare automaticamente un evento di pressione tasti, potrebbe funzionare ... (this la domanda pertinente non ha aiutato, le risposte non hanno avuto effetto).
Sto usando la textarea
come da here. Poi, ho letto da un file e sto inserendo il contenuto all'interno della casella di testo, ma non viene ridimensionato come dovrebbe.
aggiorno la casella di testo come questo:
function updateTextbox(text) {
$('#cagetextbox').val(text);
};
Tutte le idee?
Sono su firefox 34.0 canonico, su Ubuntu 12.04, se questo svolge un ruolo, che spero non sia il caso, dal momento che alcuni dei miei utenti usano Chrome.
EDIT:
Un tentativo sarebbe quello di scrivere qualcosa del genere:
$('#cagetextbox').attr("rows", how many rows does the new text contain);
Si noti che se proviamo a find out how many lines of text the textarea contiene, avremo 1 come risposta.
EDIT_2
Forse qualcosa di simile width/(length_of_line * font_size)
. Per alcuni test, sembra corretto, se ho sottratto 1 (mantenendo solo la parte intera del risultato, ovviamente).
è in genere meglio per renderlo grande come si adatta utilizzando, per esempio, 'width: 100%;', e lasciando il testo si riempie e scorre secondo le necessità, piuttosto che rischiare una casella sovradimensionata nella finestra. – dandavis
Mi piacerebbe tenerlo ridimensionabile per vari motivi @davavis, ma grazie per il commento. – gsamaras
bene, è difficile dire la dimensione del pixel che il font utilizzerà (soggetto a zoom, user-prefs, OS, dimensione del testo OS, ecc.), Il che significa che il 'cols = n' è l'unico modo affidabile per dimensionare su. quindi è necessario trovare la larghezza della linea più lunga e impostare l'attributo 'cols' a quello .cagetextbox.cols = Math.max.apply (null, text.split (" \ n "). map (function (a) {return a.length;})); ' – dandavis