2015-02-24 41 views
2

如何在用户输入时让textarea增加其WIDTH宽度。基本上我需要textarea的宽度仅限于最长行的长度。将文本区宽度调整为最长的文本行

这就是我想出来的。但是,当用户点击ENTER仍然宽度增加。我如何让textarea只适合文本的大小?

$(document).on("click blur keyup", ".fT", function() { 
     var newWidth = ($('#tfd').val().length)*10; 
     $('#tfd').width(newWidth); 
}); 
+1

您不能使用$('#tfd').val()。length,因为它会计算整个文本的值(不是一行)。你需要在你的textarea值中检查'\ n',并以\ n结尾的所有文本作为数组,然后确定最长的一个,然后 – progrAmmar 2015-02-24 02:59:05

+1

@progrAmmar:谢谢。像'if(keycode =='13'){'? – Fergoso 2015-02-24 03:03:48

+0

是的,您可以使用该代码,这意味着您正在检查每个“输入”按键上的最大行。即使那么你将不得不寻找每个输入键最大的行按 – progrAmmar 2015-02-24 03:05:47

回答

0

正如@progrAmmar提到,$('#tfd').val().length措施,为您的文字总长度,线路最长的不宽度。

实际上,您的newWidth只是一个近似值,如果用户输入非ASCII字符,则根本不会正确。到approxmiate长度

一种方式是一个pre元素某个地方,设置visibility:hiddenfont-sizefont-family与您的文字区域,并与新的内容,每当用户类型更新该元素。

通过测量此pre元素的宽度,您可以获得文本的良好近似值。

+0

谢谢。是不是有一个css规则,可以刷新使用jQuery中的keyup()来调整其宽度? – Fergoso 2015-02-24 04:07:11

+0

@Fergoso不... AFAIK – 2015-02-24 05:29:53

相关问题