Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确定文本区域中的文本是否被换行?_Javascript_Jquery_Textarea_Line Breaks_Word Wrap - Fatal编程技术网

Javascript 如何确定文本区域中的文本是否被换行?

Javascript 如何确定文本区域中的文本是否被换行?,javascript,jquery,textarea,line-breaks,word-wrap,Javascript,Jquery,Textarea,Line Breaks,Word Wrap,如何确定textarea中的长文本是否被包装成两行或多行 我不是在说我们讨论过的新产品线 我知道这个插件 有更简单的方法吗?我对此进行了试验,并提出了一个包含以下内容的方法: 禁用文本区域中的文本换行(加上禁用填充) 检查文本区域的滚动宽度是否大于其宽度 我使用的基本逻辑是,如果文本跨越多行,这意味着当关闭包装时,我们应该得到一个水平滚动条 演示: 免责声明:下面的代码是10分钟小提琴演奏的结果,绝对不是产品质量 至于使用的简单性,我不认为你能找到比你链接的插件更简单的解决方案。因为换行是基于t

如何确定textarea中的长文本是否被包装成两行或多行

我不是在说我们讨论过的新产品线

我知道这个插件


有更简单的方法吗?

我对此进行了试验,并提出了一个包含以下内容的方法:

  • 禁用文本区域中的文本换行(加上禁用填充)

  • 检查文本区域的
    滚动宽度
    是否大于其
    宽度

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

    演示

    免责声明:下面的代码是10分钟小提琴演奏的结果,绝对不是产品质量


    至于使用的简单性,我不认为你能找到比你链接的插件更简单的解决方案。因为换行是基于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;
    }