在jquery中限制动态textarea的换行符数

时间:2014-02-17 09:18:37

标签: javascript jquery

我正在尝试限制可以在动态文本区域中输入的换行符的数量,但我制作的代码不起作用。我需要设置用户可以制作的至少4个换行符。我还将maxlength设置为40个字符。

这是我的代码。

$(document).ready(function(){

    $("[name='memo[]']").each(function(){
         $(this).keydown(function() {

                newLines = $(this).val().split("\n").length;
                $(this).text(newLines);

                if(e.keyCode == 13 && newLines >= 4) {
                    alert("Exceed");
                    return false;
                }


            });
        });
  });

2 个答案:

答案 0 :(得分:1)

试试这个:

$(document).ready(function() {
    $("[name='memo[]']").each(function() {
        var textarea = $(this);
        textarea.attr('maxlength', 40);

        textarea.keydown(function(e) {

            var newLines = textarea.val().split(/\r*\n/).length;

            if (e.keyCode === 13 && newLines >= 4) {        
                e.preventDefault();
            }    
        });
    });
});

<强>更新: 不要警惕,代码工作正常。演示链接是:http://jsfiddle.net/bobkhin/nJWk2/

答案 1 :(得分:0)

使用以下示例代码获取文本区域中的行并尝试...

 String.prototype.lines = function() { return this.split(/\r*\n/); }
 String.prototype.lineCount = function() { return this.lines().length; }