代码之家  ›  专栏  ›  技术社区  ›  panagulis72

限制HTML5文本区域中的行数

  •  0
  • panagulis72  · 技术社区  · 6 年前

    我在找一个问题的解决办法,但找不到。它可以是在AngularJS或JavaScript中(然后我将用AngularJS进行翻译)。问题是我必须限制简单文本区域的行。HTML5的属性'rows=x'仅限制视图。我必须限制线路。问题是,即使这些线以图形方式下降,组件也会将其视为一条独特的线。用户必须按Enter键才能创建新行。但是,我必须限制线路。 我做了这个指示:

    angular.module('app').directive('maxlines', function (): any {
    return function (scope: any, element: any, attrs: any) {
        element.bind("keydown keypress", function (event: any) {
    
            if (event.which === 13) {
                var text = element.val(),
                    numberOfLines = (text.match(/\n/g) || []).length + 1,
                    maxRows = parseInt(element.attr('rows'));
    
                if (event.which === 13 && numberOfLines === maxRows) {
                    return false;
                }
            }
        });
    };
    });
    

    如果我按Enter键,它就会工作,但是如果我不按Enter键继续写,它就不工作。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Terence Eden    6 年前

    认为 您可以使用纯HTML来实现这一点。

    <textarea cols="20" rows="5" wrap="hard" maxlength="100">

    这个 wrap="hard" 意味着一旦用户到达行尾(在本例中为20个字符),将插入新行。

    一旦用户达到100个字符(与用20个字符填充5行相同),就不允许再输入。

    现在,这并不能阻止任何人添加10行10个字符-但它是否接近你想要做的?

    推荐文章