Javascript 如何确定文本区域中的文本是否被换行?
如何确定textarea中的长文本是否被包装成两行或多行 我不是在说我们讨论过的新产品线 我知道这个插件Javascript 如何确定文本区域中的文本是否被换行?,javascript,jquery,textarea,line-breaks,word-wrap,Javascript,Jquery,Textarea,Line Breaks,Word Wrap,如何确定textarea中的长文本是否被包装成两行或多行 我不是在说我们讨论过的新产品线 我知道这个插件 有更简单的方法吗?我对此进行了试验,并提出了一个包含以下内容的方法: 禁用文本区域中的文本换行(加上禁用填充) 检查文本区域的滚动宽度是否大于其宽度 我使用的基本逻辑是,如果文本跨越多行,这意味着当关闭包装时,我们应该得到一个水平滚动条 演示: 免责声明:下面的代码是10分钟小提琴演奏的结果,绝对不是产品质量 至于使用的简单性,我不认为你能找到比你链接的插件更简单的解决方案。因为换行是基于t
有更简单的方法吗?我对此进行了试验,并提出了一个包含以下内容的方法:
滚动宽度
是否大于其宽度
至于使用的简单性,我不认为你能找到比你链接的插件更简单的解决方案。因为换行是基于textarea的大小,所以几乎可以肯定的是,您必须根据textarea的宽度和字体的宽度计算一行可以包含的最大字符数,然后进行某种计算。非单空格字体使这一点更加复杂。你认为什么比TeXTaReA行计数插件更简单?我考虑创建一个临时div与相同的样式和测量的高度,但由于浏览器的差异,这是不准确的。不确定是否值得这么麻烦。有关详细信息,请参阅:
function checkMulti(id) {
var ta = $('#'+id), multi = false;
// disable wrapping, padding and enable horiz scoll
ta.addClass('nowrap');
// check if there is anything to be scrolled horizontally (means multi-lines otherwise)
multi = ( ta[0].scrollWidth > ta.width() );
// checking done. remove the class.
ta.removeClass('nowrap');
alert('Spread over multiple-lines: ' + multi);
}
/* the nowrap class */
.nowrap {
overflow-x: scroll;
white-space: nowrap;
padding: 0;
}