Javascript 限制jquery中动态textarea的换行数

Javascript 限制jquery中动态textarea的换行数,javascript,jquery,Javascript,Jquery,我试图限制可以在动态文本区域中输入的换行符的数量,但是我所做的代码不起作用。我需要设置至少4个新行,用户可以使。我还将maxlength设置为40个字符。 这是我的密码 $(document).ready(function(){ $("[name='memo[]']").each(function(){ $(this).keydown(function() { newLines = $(this).val().split("\n")

我试图限制可以在动态文本区域中输入的换行符的数量,但是我所做的代码不起作用。我需要设置至少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;
                }


            });
        });
  });

使用下面的示例代码获取文本区域中的行,然后重试

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

$(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();
            }    
        });
    });
});
更新
不要报警,代码工作正常。演示链接是:

您也可以尝试textarea的rows属性
@Paulito
rows
刚刚定义的textarea高度。@Bob khin的确,您是对的,我认为它不起作用的原因是因为textarea位于TD内。嗨,我仍然无法使它起作用。我不知道为什么。我想问题是文本区在TD内,:(你能给我提供日志吗?