根据内容减少textarea高度

时间:2013-06-07 11:46:13

标签: javascript jquery html

我可以在textrows加起来时增加textarea的高度(基于这个问题/答案:Adjust TD height depending on textarea rows)。

现在,如何在删除文字时减少行数?上面的答案只会添加行。

1 个答案:

答案 0 :(得分:0)

如果您希望它更稳定,您可以计算换行符。因此,您可以确保它设置了正确的行数:

$('.expand').on('keydown', function(e) {
    if(13==(e.keyCode ? e.keyCode : e.which)) {
        var rows = $(this).attr('rows');
        var rowsNew = parseInt(rows) + 1;
        $(this).attr('rows', rowsNew);
    }
});
$('.expand').on('keyup', function (e) {
    var lines = $('.expand').val().match(/\n/g);
    var need = lines ? lines.length + 1 : 1;
    var itis = $('.expand').attr("rows");
    if(itis!=need) {
        $('.expand').attr("rows", need);
    }
});

在这里演示:http://jsfiddle.net/efhYe/

但是如果你已经有jQuery,你也可以使用这个插件:http://www.jacklmoore.com/autosize/