3

如何查找 textarea 中的长文本是否包含在两行或多行中?

我不是在谈论这里讨论的新行字符。

我知道插件Textarea Line Count

有更简单的方法吗?

4

1 回答 1

3

我对此进行了试验,并提出了一个涉及以下内容的hack:

  1. 在 textarea 中禁用文本换行(加上禁用填充)

  2. 检查 textareascrollWidth是否大于它的width.

我使用的基本逻辑是,如果文本跨越多行,这意味着关闭换行时,我们应该得到一个水平滚动条。

演示:http: //jsfiddle.net/fnG3d/

免责声明:下面的代码是 10 分钟的结果,绝对不是生产质量

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;
}
于 2013-04-05T13:55:16.670 回答