3

我有一个每行字符有限的文本区域。它的功能很好。

function limitRow(){
    var count = 1;
    var charsPerLine = row; // 30 characters  
    var maxLines = 20; 

    $('.AD_Text_textarea').keydown(function (e) {
        var v = $(this).val(),
        vl = v.replace(/(\r\n|\n|\r)/gm, '').length,
        lineCount = $(this).val().split("\n").length;

        if (parseInt(vl / count) >= charsPerLine) {
            if (lineCount >= maxLines) {
                return false;
            }
            $(this).val(v + "\n");
            count += 1;
        }
    });
}

我的问题是,如果我要去第 1 行,在输入例如 4 行文本并在光标位置 4 上输入一些文本后,行计数器会计算开头并在 60 个字符后换行并在结尾处跳转第 4 行
。我该如何解决这个问题?我希望,这很清楚。(对不起我的英语)

4

1 回答 1

0

尝试这个

    var count = 1;
    var charsPerLine = 30; // 30 characters  
    var maxLines = 2;
    $('.AD_Text_textarea').keydown(function (e) {
        var this_input = $(this);
        var value = this_input.val().split('\n');

        if (value.length < maxLines) {
            if (value[parseInt(value.length) - 1].toString().length > charsPerLine) {
                alert(value.length.toString());
                this_input.val(this_input.val() + '\n');
            }

        }
        else {
            return false;
        }
    });
于 2013-06-19T11:24:43.160 回答