jQuery textarea字符计数(包括回车)



我有一个jQuery函数,其中我计算keyup上剩下的字符。

function charactersLeft(e) {
    var textArea = e.data.textArea,
            charLeft = e.data.maxLength - textArea.val().length,
            message = e.data.messageContainer;
    if (charLeft < e.data.warningLength) {
        message.addClass('red').removeClass('green');
    }
    else {
        message.addClass('green').removeClass('red');
    }
    message.text(charLeft);
}

这个可以正常工作,但它将回车计数为一个字符而不是两个字符。当它被传递给服务器时,这会导致一个问题,因为回车被传递为'rn'。

我能做些什么来修改我的代码,以便每当我按回车键时,字符计数减去2而不是1,并在删除回车时添加2而不是1 ?

谢谢你

keyup的if条件?

if(e.which==13){charLeft--}。这会减去一个额外的计数。

下面是您要查找的代码。

下面的代码也进行了测试。

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
(function($)
{ 
    $.fn.extend(
    {
        limit: function(limit,element)
        {
            var interval, f;
            var self = $(this);
            $(this).focus(function()
            {
                interval = window.setInterval(substring,100);
            });
            $(this).blur(function()
            {
                clearInterval(interval);
                substring();
            });
            substringFunction = "function substring(){ var val = $(self).val();var length = val.length;if(length > limit){$(self).val($(self).val().substring(0,limit));}";
            if(typeof element != 'undefined')
                substringFunction += "if($(element).html() != limit-length){$(element).html((limit-length<=0)?'0':limit-length);}"
            substringFunction += "}";
            eval(substringFunction);
            substring();
        } 
    }); 
})(jQuery);
</script>
<textarea id="myTextarea"></textarea>
<script type="text/javascript">
    $(document).ready(function()
    {
        $('#myTextarea').limit('140','#charsLeft');
    });    
</script>
<div id="charsLeft"></div>

相关内容

  • 没有找到相关文章

最新更新