限制textarea最大录入长度

       //限制输入最大值
        function doKeypress(txt) {
            var maxLength = $(txt).attr("maxlength");
            var value = $(txt).val();
            if (maxLength && value.length > maxLength - 1) {
                //选中区域值
                var oTR = txt.document.selection.createRange();
                var iInsertLength = maxLength - value.length + oTR.text.length;
                //是否有选中
                event.returnValue = iInsertLength > 0 || event.keyCode == 8;
            }
        }

        //粘贴值到最大值
        function doPaste(txt) {
            var maxLength = $(txt).attr("maxlength");
            //控件现有值
            var value = $(txt).val();
            if (maxLength) {
                event.returnValue = false;
                //选中区域值
                var oTR = txt.document.selection.createRange();
                var iInsertLength = maxLength - value.length + oTR.text.length;
                //获得最大长度,以及获得粘贴值
                var sData = window.clipboardData.getData("Text").substr(0, iInsertLength);
                oTR.text = sData;
            }
        }
<textarea maxlength="500" onkeydown="doKeypress(this)" onpaste="doPaste(this)"></textarea>



第二种方式:

<textarea rows="3" cols="98%" id="tableDescArea" onkeyup="this.value = this.value.slice(0,1000)"
onblur="this.value = this.value.slice(0,1000)" onfocus="checkFocusArea(this)">请输入表的描述</textarea>


在onkeyup 和 onblur事件被触发时,截取限制的字符数.(onblur事件防止用户只用鼠标粘贴)

你可能感兴趣的:(限制textarea最大录入长度)