有没有办法在jQuery中检测;是否在最终用户连续输入文本区域时创建了新行?我无法设置行高,最小高度为textarea。
小提琴:http://jsfiddle.net/5wdzH/113/
注意:这里我不是询问\ n(回车)而是关于新行
enteredText = $( this ).val();
numberOfLineBreaks = (enteredText.match(/\n/g)||[]).length; //When we press enter then only the value comes but not for new row.
Textarea属性:
$(e).css({'height': 'auto', 'overflow-y': 'hidden'}).height(e.scrollHeight);
答案 0 :(得分:1)
我认为测量它的最佳方法是计算文本区域的列数,并检查输入的字符数是否超过该值。这不会受到宽字母或细长字母的阻碍(除外一个或两个字符的错误边距)。
var numberOfColumns = 0; var numberOfLines = 1;
第一:
$( "#watched_textarea" ).each(function(){
numberOfColumns = $(this).context.cols;
});
然后:
if (characterCount > numberOfColumns) {
numberOfLines = parseInt(characterCount / numberOfColumns) + 1;
}
你可以看看 - 更新你的小提琴:http://jsfiddle.net/5wdzH/116/
答案 1 :(得分:0)
有两种方法可以做到这一点 1)如果你想识别输入按,那么你可以增加行计数器 if(e.keyCode == 13){ //增加行计数器 }
2)如果你使用固定宽度的textarea,那么你可以计算一行中可以容纳的单词数。字符数除以此因子将给出行数
我认为这会对你有所帮助