Bri*_*ips 2 javascript textarea
我有以下代码(从这个问题中提取)来设置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]);
}
Run Code Online (Sandbox Code Playgroud)
以及我的textareas html示例:
<textarea maxlength="150" class="maxtext"></textarea>
Run Code Online (Sandbox Code Playgroud)
这一切在Firefox和Chrome中都运行良好.在IE7 +中,如果我输入限制,它将阻止我,但我可以无限制地复制/粘贴文本.
有没有办法修改此脚本以防止复制/粘贴超出最大字符限制?
听取这个onpaste事件.一旦事件触发,从剪贴板中获取文本并按照您喜欢的方式操作它.
HTML
<textarea id="test" maxlength="10" class="maxtext"></textarea>
Run Code Online (Sandbox Code Playgroud)
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);
};
Run Code Online (Sandbox Code Playgroud)