Sie können element.scrollHeight verwenden (genau wie Patrick geantwortet hat), aber es bedarf einiger Korrekturen (ich verwende jQuery im Beispiel):
1) Wenn Ihre Textarea Polsterung hat, müssen Sie es subtrahieren (oben und unten).
2) wenn das Element bereits die Höhe eingestellt hat, müssen Sie es auf Null setzen (nur um zu messen, dann setzen Sie es zurück, sonst gibt es diese Höhe + Padding zurück)
var h0 = $(element).height(); // backup height
$(this).height(0);
var h = $(this).get(0).scrollHeight - $(this).css('paddingTop').replace('px','')*1 - $(this).css('paddingBottom').replace('px','')*1; // actual text height
$(this).height(h0); // set back original height (or new height using h)
Es besteht keine Notwendigkeit für ein zusätzliches Feld mit demselben CSS wie für Textarea.