0

我正在将 nicEdit 用于文本区域,我想在其中将输入的文本限制为 1000。有一个计数器会在输入文本时更新,在 0 之后它将不允许用户输入。在复制粘贴的一种情况下,我遇到了问题。

如果已经输入了 990 个字符并且用户按下 ctrl+A,ctrl+c 和 ctrl+v。它不限制用户(当然因为计数器是 990)但是现在输入的文本是 990*2。所以剩下的唯一方法就是我计数器值用尽时需要修整。这样做我可以使用

nicEditors.findEditor('summary').getContent(); 长度或

jQuery('.nicEdit-main').text().length()

截断超过 1000 的输入。但前一种解决方案不会产生结果,因为 nicEdit 在文本区域中附加了很多 div,后一种解决方案不会考虑用户按下 ENTER。请告诉我如何实现这一点。

    $('.nicEdit-main').bind("propertychange input textInput ", function(e){
    var left=1000;
    if(jQuery('.nicEdit-main').text()!='')
    {

        var summarytemp = nicEditors.findEditor( 'summary' ).getContent();
        var countOfEnter = summarytemp.match(/(<br\ ?\/?>)+/g);
        if(null!=countOfEnter)
            countOfEnter = countOfEnter.length;
        left = max - jQuery('.nicEdit-main').text().length-countOfEnter;
        if (left < 0) {
            left = 0;
            e.preventDefault();
        }

    }
    $("input[name='countdown']").val(left);
});
4

1 回答 1

0

如果您的输入/文本区域的长度大于允许的长度,请将其截断为 1000 个字符:

if (left < 0) {
   jQuery('.nicEdit-main').text(jQuery('.nicEdit-main').text().substr(0,1000))
   left = 0;
   e.preventDefault();
}
于 2013-09-12T14:10:17.473 回答