我希望用户在文本区域中最多输入 5 行,每行最多 15 个字符。之后,用户应该能够阻止按除箭头、Del、Backspace 等之外的任何键。
这是我的函数,它接受 TextareaId、每个文本区域的事件和限制(我有 3 个具有不同字符限制的文本区域),我在代码中达到了 event.preventDefault();
但它仍然允许用户添加更多字符
function charCountTextarea(textAreaId,event,limit)
{
var code = (event.keyCode ? event.keyCode : event.which);
var Length = $("#"+textAreaId).val().length;
var t = $("#"+textAreaId)[0];
var AmountLeft = limit - Length;
var lineIndex = t.value.substr(0, t.selectionStart).split("\n").length-1;
var t = $("#"+textAreaId).val().split("\n");
var lineIndex = (t.length)-1
var controlKeys = [8, 46, 37, 38,39,40];
var isControlKey = controlKeys.join(",").match(new RegExp(event.which));
if(lineIndex>4 && t[lineIndex].length>15) {
if(isControlKey) {
return;
}
else {
console.log("prevent");
event.preventDefault();
}
}
if(AmountLeft<0) {
if(isControlKey) {
return;
}
else {
console.log("preve 2");
event.preventDefault();
}
}
}
最佳答案
您可以简单地执行以下操作:
var characters=500 //max characters
$("#MyTextArea").keyup(function(){
if($(this).val().length > characters){
$(this).val($(this).val().substr(0, characters));
}
});
或者在你的代码中,而不是
event.preventDefault()
使用:
$(this).val($(this).val().substr(0, characters));
关于javascript - 限制输入字符并阻止用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12563258/