我有以下代码(从this question拉出来),用于设置textareas的字符限制。
function maxLength(el) {
if (!("maxLength" in el)) {
var max = el.attributes.maxLength.value;
el.onkeypress = function () {
if (this.value.length >= max) return false;
};
}
}
var maxtext = document.getElementsByClassName("maxtext");
for (var i = 0; i < maxtext.length; i++) {
maxLength(maxtext[i]);
}
我的textareas html示例:
<textarea maxlength="150" class="maxtext"></textarea>
这一切在Firefox和Chrome中运行良好。在IE7 +中,如果我输入限制,它将阻止我,但我可以无限制地复制/粘贴文本。
是否可以修改此脚本以防止复制/粘贴超出最大字符数限制?
答案 0 :(得分:6)
收听onpaste
事件。一旦事件触发,请抓取clipboard中的文本并按照您的喜好进行操作。
<强> HTML 强>
<textarea id="test" maxlength="10" class="maxtext"></textarea>
<强> JAVASCRIPT 强>
var test = document.getElementById("test");
test.onpaste = function(e){
//do some IE browser checking for e
var max = test.getAttribute("maxlength");
e.clipboardData.getData('text/plain').slice(0, max);
};
答案 1 :(得分:0)
您可以收听onchange
事件来检查内容长度,如果超出限制,则减去它。