• 限制最大文本输入Js代码


    园子里一位兄弟写的JS代码(地址:http://www.cnblogs.com/tintown/archive/2005/02/07/103088.html

    <script language="javascript"> 
    <!-- 
    
    String.prototype.len=function(){ 
    return this.replace(/[^\x00-\xff]/g,"**").length; 
    } 
    
    //Set maxlength for multiline TextBox 
    function setMaxLength(object,length) 
    {
        
        var result = true; 
        var controlid = document.selection.createRange().parentElement().id; 
        var controlValue = document.selection.createRange().text; 
        var tempString=object.value;
        
        var tt=""; 
        for(var i=0;i<length;i++) 
            { 
                if(tt.len()<length) 
                    tt=tempString.substr(0,i+1); 
                else 
                    break; 
            } 
        if(tt.len()>length)
            tt=tt.substr(0,tt.length-1);
        object.value=tt;
        
        
    } 
    
    //Check maxlength for multiline TextBox when paste 
    function limitPaste(object,length) 
    { 
            var tempLength = 0; 
            if(document.selection) 
            { 
                if(document.selection.createRange().parentElement().id == object.id) 
                { 
                    tempLength = document.selection.createRange().text.len(); 
                } 
            } 
            var tempValue = window.clipboardData.getData("Text"); 
            tempLength = object.value.len() + tempValue.len() - tempLength; 
    
            if (tempLength > length) 
            { 
                tempLength -= length; 
                var tt=""; 
                for(var i=0;i<tempValue.len()-tempLength;i++) 
                    { 
                        if(tt.len()<(tempValue.len()-tempLength)) 
                            tt=tempValue.substr(0,i+1); 
                        else 
                            break; 
                    } 
                if(tt.len()<=0)
                {    
                    window.event.returnValue=false;
                    
                }
                else
                {
                    tempValue=tt; 
                    window.clipboardData.setData("Text", tempValue); 
                    window.event.returnValue = true; 
                }
            } 
        
    
    } 
    
    function PressLength()
    {
        
        if(event.srcElement.type=="text" || event.srcElement.type=="textarea" )
        {
            if(event.srcElement.length!=null)
                setMaxLength(event.srcElement,event.srcElement.length);
            
        }
    }
    
    function LimitLength()
    {
    
        if(event.srcElement.type=="text" || event.srcElement.type=="textarea" )
        {
            if(event.srcElement.length!=null)
                limitPaste(event.srcElement,event.srcElement.length);
        }
    }
    document.documentElement.attachEvent('onkeyup', PressLength); 
    document.documentElement.attachEvent('onpaste', LimitLength);
    
    //--> 
            </script>
    但是这个毕竟是在客户端的,本着“客户不信任”的原则,在服务器端得验证还是少不了的。
    作者:KKcat
        
    个人博客:http://jinzhao.me/
        
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    让一个不固定高度的div,保持垂直水平居中的方法
    Set、Map、WeakSet 和 WeakMap
    JS 中常用的 Math 方法
    不使用 new,创建一个实例对象
    做一个弹窗
    变量提升
    事件委托实践
    vue组件通信
    新版vue脚手架关闭eslint
    图片懒加载原生js实现
  • 原文地址:https://www.cnblogs.com/jinzhao/p/1592864.html
Copyright © 2020-2023  润新知