文本计数器达到1000后限制文本

时间:2013-09-12 14:00:57

标签: javascript jquery copy-paste nicedit

我正在使用nicEdit作为textarea,其中我想限制输入的文本达到1000.有一个计数器将在输入文本时更新,在0之后它将不允许用户输入。我在一个案例中面临问题糊。

如果已经输入990个字符并且用户按下ctrl + A,ctrl + c和ctrl + v。它不限制用户(当然因为计数器是990)但现在输入的文字是990 * 2.只有这样左边是我需要在计数器值耗尽时修剪。 这样做我可以使用

nicEditors.findEditor('summary')。getContent(); length或

的jQuery(”。nicEdit-主)。文本()。长度()

  

截断输入超过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);
});

1 个答案:

答案 0 :(得分:0)

如果您的输入/ textarea的长度超过允许值,请将其剪切为1000个字符:

if (left < 0) {
   jQuery('.nicEdit-main').text(jQuery('.nicEdit-main').text().substr(0,1000))
   left = 0;
   e.preventDefault();
}