【发布时间】:2013-06-19 19:24:43
【问题描述】:
我有一个每行字符有限的文本区域。它的功能很好。
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 行结束。
我该如何解决这个问题?
我希望,这很清楚。 (对不起我的英语)
【问题讨论】:
-
在我看来,最好的选择是忘记为响应击键而执行此操作,并在模糊时执行此操作。这样,您不仅可以避免跳跃问题,还允许用户通过“编辑”菜单或使用鼠标更改文本。 (顺便说一句,你的英语很好。)
-
只需将
$('.AD_Text_textarea').keydown()更改为$('.AD_Text_textarea').blur()即可遵循@nnnnnn 的[优秀] 建议。
标签: javascript