/**
	这个js用来控制页面中可输入控件的长度限制,包括中文字符.<b> 
	使用和简单,只要在jsp中引入这个js,然后在控件中指定length="44"这个属性即可. 不需要其它的设置.

**/
String.prototype.len=function(){  
	return this.replace(/[^\x00-\xff]/g,"**").length;  
}  


//Set maxlength for multiline TextBox  
//Set maxlength for multiline TextBox  
function setMaxLength(object,length)  
{ 
    var result = true;  
    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!=tempString){
	    alert("超出字数限制,超出的字符会被自动删除,请您检查输入.\n允许的最大长度为:"+length+"个字符."); 
		object.focus();
    }
    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;  
            }
            alert("超出字数限制,超出的字符会被自动删除,请您检查输入.\n允许的最大长度为:"+length+"个字符."); 
        }  
     
 
}  
 
function PressLength() 
{ 
	var oEvent = arguments[0];
	var oTarget = oEvent.target || oEvent.srcElement;
	
	// alert(oTarget.value);
	
    if(oTarget.type=="text" || oTarget.type=="textarea" ) 
    { 
        if(oTarget.length!=null) 
            setMaxLength(oTarget,oTarget.length); 
         
    } 
} 
 
function LimitLength() 
{ 
	var oEvent = arguments[0];
	var oTarget = oEvent.target || oEvent.srcElement;
	
    if(oTarget.type=="text" || oTarget.type=="textarea" ) 
    { 
        if(oTarget.length!=null) 
            limitPaste(oTarget,oTarget.length); 
    } 
} 

/**
本想能自动实现的,可是发现ie,fx等浏览器不好同时兼容,所以,使用时还是费点力气吧 使用方法在 控件的onblur="setMaxLength(this,100);"

**/

document.documentElement.attachEvent('onkeyup', PressLength);  
document.documentElement.attachEvent('onpaste', LimitLength); 

/**
var oEventUtil = new Object();
oEventUtil.AddEventHandler = function(oTarget,sEventType,fnHandler){
	if(oTarget.addEventListener){
		oTarget.addEventListener(sEventType,fnHandler,false);
	} else if(oTarget.attachEvent){
		oTarget.attachEvent('on'+sEventType,fnHandler);
	} else{
		oTarget['on'+sEventType] = fnHandler;
	}
};

window.onload = function(){
	for(i=0;i<document.getElementsByTagName("*").length;i++){
		var aobj = document.getElementsByTagName("*")[i];
		if(aobj.type=="text" || aobj.type=="textarea" ) 
		{ 
			if(aobj.length!=null) {
				oEventUtil.AddEventHandler(aobj,'keyup',PressLength);
				oEventUtil.AddEventHandler(aobj,'paste',LimitLength);
			}
		} 
	}
}
**/