我有一个textarea,我希望在每次输入时增加一行,每次当文本进入另一行时都要输入。所以我有3个条件,何时显示我想对所有使用的行进行编号并根据这个设置行高:
一:var countRows = $(" textarea")。val()。split(/ \ r | \ r \ n | \ n /)。length;
二:使用
keypress == 13
时和三:当文本进入另一行时输入
直到现在我已经实现了这一点,但实际上并没有起作用:|
var countRows = $("textarea").val().split(/\r|\r\n|\n/).length;
var keynum = 13; //enter keynum
//for default state
//not calculating
$("textarea").attr("rows", countRows + 1);
//for enter key
//not really working
$("textarea").on('keypress', keynum, function() {
$(this).attr("rows", countRows + 1);
// alert("jjj");
});
//for case whentext it goes into another row wile typing
我只想使用.attr()并更新该属性" rows"当添加或删除一行时。
答案 0 :(得分:2)
来自then I like (bottom of the page)
$("textarea").keyup(function(e) {
while($(this).outerHeight() < this.scrollHeight + parseFloat($(this).css("borderTopWidth")) + parseFloat($(this).css("borderBottomWidth"))) {
$(this).height($(this).height()+1);
};
});
答案 1 :(得分:0)
$('textarea').keyup(function(e) {
var $lineHeight = $(this).height() / $(this).get(0).rows;
var $lines = $(this).val().split(/\r|\r\n|\n/).length;
$(this).get(0).rows = $lines;
});
如果在textarea中添加新行,请增加大小。 如果从文本区域删除行,请减小大小。 如果未在textarea中添加/删除行,则无济于事。