Textarea允许用户只输入2行

时间:2015-05-15 21:29:57

标签: javascript jquery

我需要一个textarea,允许用户只输入2行文字。

当lineCount等于2时,我通过e.preventDefault()对keyDown事件完成了此操作。问题是当用户使用退格键并删除输入的文本时。

如何跟踪行并再次输入,直到用户再次输入两行?

以下是我能够完成的事情:

var lineCount = 0;
$('#editor').keydown(function (e) {
    if (e.keyCode == 13) {
        lineCount++;
    }
    if (e.keyCode == 8) {
       //needs to remove characters, deduct linecount when it gets to first line and reinstate typing
       return true;
    }
    if (lineCount >= 2) {
       e.preventDefault();
       return false;
    }
});

http://jsfiddle.net/blueberry20/yphkafqn/2/

1 个答案:

答案 0 :(得分:0)

在jQuery(> 1.6)中可能是这样的:

$(document).ready(function () {

    var lines = 2;

    $('#mytext').keydown(function (e) {
        newLines = $(this).val().split("\n").length;

        if (newLines > lines) {
            $("#mytext").prop('disabled', true);
        } else {
            $("#mytext").prop('disabled', false);
        }
    });

    $('#button').click(function () {
        $("#mytext").val('');
        $("#mytext").prop('disabled', false);
    });
});

http://jsfiddle.net/6vwLLu5h/1/

它不适用于粘贴,如果用户不使用换行符。