我需要一个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;
}
});
答案 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/
它不适用于粘贴,如果用户不使用换行符。