对多行文本框限制长度

下面是完整的代码,支持中文,支持粘贴,偶从网上copy的

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>test</title>
<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; 
if (controlid == object.id && controlValue != ""

result 
= true
}
 
else if (object.value.len() >= length) 

result 
= false
}
 
if (window.event) 

window.event.returnValue 
= result; 
return result; 
}
 
}
 

//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
}
 
tempValue
=tt; 
window.clipboardData.setData(
"Text", tempValue); 
}
 

window.event.returnValue 
= true
}
 

//--> 
</script> 

</head>

<body>
<form name="form1" method="post" action="">
  
<textarea name="textarea" onkeypress="setMaxLength(this,10);" onpaste="limitPaste(this, 10)"></textarea>
</form>
</body>
</html>
posted @ 2005-09-02 09:57  魔豆  阅读(968)  评论(0编辑  收藏  举报