如何查找文本区域中的文本是否包含多行?

时间:2013-04-05 13:33:13

标签: javascript jquery textarea line-breaks word-wrap

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

我不是在讨论here所讨论的新行字符。

我知道插件Textarea Line Count

任何更简单的方法?

1 个答案:

答案 0 :(得分:3)

我对此进行了实验,并提出了涉及以下内容的黑客攻击:

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

  2. 检查textarea的scrollWidth是否大于width

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

    演示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;
    }