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

时间:2010-12-13 11:37:20

标签: javascript asp.net

<asp:TextBox ID="txtPurpose" CssClass="dd" runat="server" MaxLength="500" OnKeyUp="return maxlength();" OnPaste="return maxlength();" TextMode="MultiLine"
                                Width="70%" Rows="4" ValidationGroup="tool"></asp:TextBox>

在javascript中

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');
        }

它运行正常但是在复制某些内容并使用鼠标右键单击$('。dd')将其粘贴到textarea中时,focus()。val()将作为空字符串。怎么做

1 个答案:

答案 0 :(得分:0)

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

以下内容应该有所帮助:

    event.returnValue = false;
    var clipString = window.clipboardData.getData("Text", sNewString);

有关详细信息,请参阅Microsoft OnPaste event

但是,请注意onpaste事件。

来自http://reference.sitepoint.com/html/extended-event-attributes/onpaste

  

它定义的非标准事件   Microsoft用于Internet   资源管理器。它可能在其他一些方面有用   浏览器但无法可靠地使用。   这种非标准的兼容性   属性未经过测试。