javascript防止复制/粘贴超出textarea中的字符限制

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 +中,如果我输入限制,它将阻止我,但我可以无限制地复制/粘贴文本.

有没有办法修改此脚本以防止复制/粘贴超出最大字符限制?

Cha*_*ase 8

听取这个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)