Lorsque je travaillais sur mon projet actuel, j'ai eu un problème similaire de ne pas pouvoir trouver un plugin de zone de texte en expansion solide et fiable. J'ai fini par opter pour growfield, mais je ne peux pas dire que je en suis trop satisfait.
Un problème auquel j'ai pu remédier était que growfield (tout comme presque tous les autres plugins) insistait pour ajouter une ligne supplémentaire à la zone de texte en tout temps. C'est un code de développement brut, et actuellement ne prend en charge que Safari et Firefox, mais voici un peu de code que j'ai ajouté à la fin de la fonction getDummyHeight() de growfield:
if ($.browser.safari) return h-sr.lh*2+sr.pt+sr.pb;
if ($.browser.mozilla) return h-sr.lh*2+sr.pt*2+sr.pb+5;
Cela utilise la détection du navigateur (ce qui est une mauvaise pratique) et dépend probablement de notre mise en page et de notre CSS, mais vous pourriez être en mesure de faire quelques ajustements pour le faire fonctionner correctement dans votre design.
En cas de doute (growfield est un peu cryptique), h fait référence à la hauteur de la zone de texte, sr.lh fait référence à la hauteur de ligne, sr.pt fait référence au padding supérieur et sr.pb fait référence au padding inférieur. La liste complète des variables se trouve dans la fonction prepareSizeRelated().