如何在javascript中限制鼠标粘贴事件中的字符

时间:2012-11-20 10:26:15

标签: javascript jquery

  

可能重复:
  How do you handle oncut, oncopy, and onpaste in jQuery?

$(document).ready(function() {
    $('#Description').bind('keyup', function() {   
        var characterLimit = 350;
        var charactersUsed = $(this).val().length;
        if (charactersUsed > characterLimit) {
            charactersUsed = characterLimit;
            $(this).val($(this).val().substr(0, characterLimit));
            $(this).scrollTop($(this)[0].scrollHeight);
        }
    });
});

http://jsfiddle.net/qCasN/

这是我的代码。我试图使用鼠标右键单击粘贴在描述框中粘贴一些内容,但它不由代码处理。我不知道哪里出错,任何人都可以帮我解决这个问题。

提前致谢

4 个答案:

答案 0 :(得分:0)

您应该使用changeinput个事件而不是keyup。如果您不介意性能损失,您可以这样做:

$('#Description').bind('keyup change input', function () { .. });

http://jsfiddle.net/3HdAd/

答案 1 :(得分:0)

您需要使用mouseup事件,而不是keyup事件。 keyup用于键盘操作。 我不确定该页面是否会从上下文菜单中收到mouseup事件。 (右键单击 - >“粘贴”可让您单击非DOM元素上的“粘贴”按钮。


或者Miszy建议的事件将是更好的选择。

答案 2 :(得分:0)

您可以使用onpaste事件来处理: -

$("#Description").bind("paste", function(){} );

点击此链接: - How do you handle oncut, oncopy, and onpaste in jQuery?

答案 3 :(得分:0)

您可以使用默认的jquery keyup事件,如下所示:

var characterLimit = 360; 
$("#Description").keyup(function(){
  if($("#Description").val().length > characterLimit){
    $("#Description").val($("#Description").val().substring(0,characterLimit));
   }
});

或者你可以使用keydown事件作为

var characterLimit = 360; 
    $("#Description").keydown(function(){
      if($("#Description").val().length > characterLimit){
        return false;
       }
    });