Javascript 使用JQuery对多行文本框进行Maxlength检查

Javascript 使用JQuery对多行文本框进行Maxlength检查,javascript,asp.net,Javascript,Asp.net,它工作正常,但当使用鼠标右键单击$'.dd'复制某些内容并将其粘贴到textarea时,focus.val将作为空字符串出现。该怎么办我认为这个问题在于,在您捕获事件时,剪贴板的内容尚未传输到文本框中 以下内容应该会有所帮助: function maxlength() { var max = 500; if ($('.dd').focus().val().length > max) {

它工作正常,但当使用鼠标右键单击$'.dd'复制某些内容并将其粘贴到textarea时,focus.val将作为空字符串出现。该怎么办

我认为这个问题在于,在您捕获事件时,剪贴板的内容尚未传输到文本框中

以下内容应该会有所帮助:

function maxlength()
        {

            var max = 500;
            if ($('.dd').focus().val().length > max)
            {
                $('.dd').val($('.dd').val().substr(0, max));
            }
            $('.charsRemaining').html('You have ' + (max - $('.dd').val().length) + ' characters remaining');
        }
有关更多信息,请参阅

但是,请注意onpaste事件

发件人:

它是由定义的非标准事件 微软在互联网上的应用 探索者它可能在其他方面起作用 浏览器,但不能可靠地使用。 此非标准配置的兼容性 属性未测试


对于这个问题有没有跨浏览器的修复方法?上面提到的只是在IE中工作
function maxlength()
        {

            var max = 500;
            if ($('.dd').focus().val().length > max)
            {
                $('.dd').val($('.dd').val().substr(0, max));
            }
            $('.charsRemaining').html('You have ' + (max - $('.dd').val().length) + ' characters remaining');
        }
    event.returnValue = false;
    var clipString = window.clipboardData.getData("Text", sNewString);