JavaScript 限制文本框输入长度(支持字符限制)详解编程语言

1.实时显示可输入的字数(字节数)

2.两种限制方式(长度、字节数)

3.中文输入法下可正常使用,无BUG

4.同一页面可以使用多个,相互不干扰

limit.js代码:

function limit(){      
    var txtNote;//文本框      
    var txtLimit;//提示字数的input      
    var limitCount;//限制的字数      
    var isbyte;//是否使用字节长度限制(1汉字=2字符)      
    var txtlength;//到达限制时,字符串的长度      
    var txtByte;      
    this.init=function(){      
        txtNote=this.txtNote;      
        txtLimit=this.txtLimit;      
        limitCount=this.limitCount;      
        isbyte=this.isbyte;      
        txtNote.onkeydown=function(){wordsLimit()};txtNote.onkeyup=function(){wordsLimit()};      
        txtLimit.value=limitCount;            
    }         
    function wordsLimit(){      
        var noteCount=0;              
        if(isbyte){noteCount=txtNote.value.replace(/[^/x00-/xff]/g,"xx").length}else{noteCount=txtNote.value.length}      
        if(noteCount>limitCount){      
            if(isbyte){      
                txtNote.value=txtNote.value.substring(0,txtlength+Math.floor((limitCount-txtByte)/2));      
                txtByte=txtNote.value.replace(/[^/x00-/xff]/g,"xx").length;               
                txtLimit.value=limitCount-txtByte;      
            }else{      
                txtNote.value=txtNote.value.substring(0,limitCount);      
                txtLimit.value=0;      
            }         
        }else{      
            txtLimit.value=limitCount-noteCount;      
        }      
        txtlength=txtNote.value.length;//记录每次输入后的长度      
        txtByte=txtNote.value.replace(/[^/x00-/xff]/g,"xx").length;      
    }      
}    

<html>     
<body>     
<input id="txtNote" />     
还可输入<input type="text"  id="txtCount"  />个字符      
</body>     
<mce:script src="limit.js" mce_src="limit.js"></mce:script>   
<mce:script type="text/javascript"><!--   
 
var lim=new limit();      
lim.txtNote=document.getElementById("txtNote");      
lim.txtLimit=document.getElementById("txtCount");      
lim.limitCount=20;      
lim.isbyte=true;      
lim.init();   
// --></mce:script>     
</html>    

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/8804.html

(0)
上一篇 2021年7月18日
下一篇 2021年7月18日

相关推荐

发表回复

登录后才能评论