如何使用jQuery限制在textarea中通过鼠标单击粘贴的文本?

ism*_*aig 0 javascript jquery textarea char web

我们有一个textarea,它应该只允许300个字符.我们可以通过任何控制它的键盘新闻发布会上使用

onkeydown="limitText(this,300);" 
onkeyup="limitText(this,300);
Run Code Online (Sandbox Code Playgroud)

其中limitText如下

limitText = function (limitField, limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    }
},
Run Code Online (Sandbox Code Playgroud)

但我们无法通过此控制mouseClick粘贴....请分享任何想法.请注意:我在互联网上检查了几个解决方案,但无法解决.我知道这是一个小问题,但作为jQuery的新手(实际上是整个网络世界),我无法在正确的地方ping ...

zb'*_*zb' 5

要处理所有输入,现代浏览器都有oninput事件

这里是您使用此事件执行操作的示例:

$('.limited').bind('input',function() {
    var $t=$(this);
    var max=$t.data('maxchars');
if ($t.val().length>max) {
    $t.val($t.val().substr(0,max));
}
});?
Run Code Online (Sandbox Code Playgroud)

DEMO

对于旧浏览器,你应该使用keyup,keydown + onpaste:

$('.limited').bind('keyup keydown paste',function(e) {
    var $t=$(this);
    setTimeout(function(){ 
    var max=$t.data('maxchars');
if ($t.val().length>max) {
    $t.val($t.val().substr(0,max));
}
    },0);
});?
Run Code Online (Sandbox Code Playgroud)

老浏览器演示