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

时间:2013-03-22 15:02:36

标签: javascript textarea

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

是否可以修改此脚本以防止复制/粘贴超出最大字符数限制?

2 个答案:

答案 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);
};

EXAMPLE

答案 1 :(得分:0)

您可以收听onchange事件来检查内容长度,如果超出限制,则减去它。