I've recently improved the IssueTrackerProduct so that when you start to write in the little textarea it expands and grows vertically as the text gets larger and larger. Other sites like Highrise do this too for note taking.
Long story short, here's the demo and here's the solution:
function _getNoLines(element) {
var hardlines = element.value.split('\n');
var total = hardlines.length;
for (var i=0, len=hardlines.length; i<len; i++) {
total += Math.max(Math.round(hardlines[i].length / element.cols), 1) - 1;
}
return total;
}
$(function() {
// First, for all the textareas that have lots of lines of text
// in them, we want to double their number of rows
$('textarea.autoexpanding').each(function() {
while (_getNoLines(this) > parseInt(this.rows))
this.rows = '' + Math.round((parseInt(this.rows) * 1.5));
});
// When a user enters new lines, if they have entered more
// lines than the textarea has rows, then double the textareas rows
$('textarea.autoexpanding').bind('keyup', function() {
if (_getNoLines(this) > parseInt(this.rows))
this.rows = '' + Math.round((parseInt(this.rows) * 1.5));
});
}