限制能够使用textarea写入的行数

时间:2015-01-08 08:59:15

标签: javascript jquery html svg

我不仅要限制在文本区域中按下输入的次数,还要将输出停止在两行以上。为了更好地解释,我有一个相框设计师here。在选项中,您可以输入文本,它将显示在框架上。目前,如果您尝试按文本区域中的输入超过2次,它将不会让您。当文本太长并且它自动换行到新行时会出现问题。

以下是一些相关的代码。

$(document).ready(function(){        
    var lines = 2;
    var linesUsed = $('#linesUsed');

    $('#input').keydown(function(e) {
        newLines = $(this).val().split("\n").length;
        linesUsed.text(newLines);
        if(e.keyCode == 13 && newLines >= lines) {
            return false;
        }
    });
});

这是一些限制TEXTAREA中行数的jquery。

和textarea

<textarea id="input" maxlength="40" name="Text" value="Max. 40 characters"></textarea>

从文本区域打印输入的jquery

$('#input').keyup(function() {
    $('#text').html($(this).val());
});

这是我的svg中嵌入的html,其中打印的是键入的文本。

<foreignObject x="135" y="520" width="600" height="260" style="color:white;text-align:center">
    <body xmlns="http://www.w3.org/1999/xhtml">
        <div id="container2">
            <p id="text">Your words here</p>
        </div>
    </body>
</foreignObject>

2 个答案:

答案 0 :(得分:0)

使用属性wrap=off可以防止textarea中的自动换行,这是非标准的,但自HTML早期以来得到广泛支持。

<textarea id="input" maxlength="40" name="Text"
placeholder="Max. 40 characters" wrap="off"></textarea>

(我已将value属性更改为placeholder属性。value属性对textarea无效。)

另一种可能更好的方法是使用两个input type=text字段而不是一个textarea字段来避免此问题。然后你不需要JavaScript来防止输入两行以上,但是如果需要限制总字符数(而不是仅仅设置每行的限制),那么你需要简单的JavaScript。

答案 1 :(得分:-3)

以下是2个可以帮助您解决此问题的JavaScript库:

正如您在演示网站上看到的那样,这两种解决方案都能正常运作。