限制textarea中可以粘贴的字符数

hoj*_*oju 11 html jquery textarea copy-paste

是否可以检测到粘贴到HTML文本区域中的字符数,如果超出限制则取消粘贴?

编辑:我想要做的是阻止用户粘贴大量的字符(约300万),因为它崩溃了一些浏览器.所以我想在浏览器锁定之前取消粘贴.我正在制作一个文档编辑器,用户可能会尝试这样做.但他们可以根据自己的意愿打字.

Rei*_*gel 11

你可以在jQuery上这样做:

$(document).ready(function(){
function limits(obj, limit){

    var text = $(obj).val(); 
    var length = text.length;
    if(length > limit){
       $(obj).val(text.substr(0,limit));
     } else { // alert the user of the remaining char. I do alert here, but you can do any other thing you like
      alert(limit -length+ " characters remaining!");
     }
 }


$('textarea').keyup(function(){

    limits($(this), 20);
})

  })
Run Code Online (Sandbox Code Playgroud)

在这里查看演示.

  • 在使用键盘快捷键进行复制/粘贴时或用户直接在框中键入时很有用,但是当用户使用右键单击和上下文菜单粘贴长文本时,如何执行此操作? (11认同)

Stu*_*ser 6

$("textarea").blur(function(event) {
    var maxLength = 3000000;
    var length = this.value.length;
    if (length > maxLength) {
        //reassign substring of max length to text area value
        this.value = this.value.substring(0, maxLength);
        alert(maxLength + ' characters allowed, excess characters trimmed');
    }
});
Run Code Online (Sandbox Code Playgroud)

这个jquery将匿名函数附加到textareas,这将修剪文本并提醒用户,您还可以将其附加到keypress事件.

有关详细信息,请参阅:http://viralpatel.net/blogs/2008/12/set-maxlength-of-textarea-input-using-jquery-javascript.html.