textArea中的maxlength是无效的 解决办法

--------------------------------------------------------------------------------------
 
<s:textarea name="doc.intro" id="intro" rows="3" cssStyle="width: 505px;" onkeyup="validateLength(this)" onblur="validateLength(this)"></s:textarea>
 
 //验证textare输入长度
 function validateLength(arg){
  var intro = arg.innerHTML.replace(/^\s+|\s+$/g,"");
  if(intro.length>512){
   arg.innerHTML=intro.substr(0,512);
  }
 }
-------------------------------------------------------------------------------------
o 如果只是單純地想限制 textarea 中的字數,不想寫太多的話,可用:
 
<textarea onkeyup="this.value = this.value.slice(0, 80)"></textarea>
 
 
<textarea onkeyup="this.value = this.value.substring(0, 80)"></textarea>
 
 
o 在 textarea 的 onkeyup 中檢查字數之方法:
 
.....
<script language="javascript" type="text/javascript">
function DjCheckMaxlength(oInObj)
{
 var iMaxLen = parseInt(oInObj.getAttribute('maxlength'));
 var iCurLen = oInObj.value.length;
 
 if ( oInObj.getAttribute && iCurLen > iMaxLen )
 {
   oInObj.value = oInObj.value.substring(0, iMaxLen);
 }
} //@ END OF DjCheckMaxlength()
</script>
.....
<textarea maxlength="80" onkeyup="return DjCheckMaxlength(this);"></textarea>
.....
 
 
o 設定好自動去檢查所有的 textarea 之方法:
 
.....
<head>
<script language="javascript" type="text/javascript">
function DjTextArea_AddMaxlengthAttr()
{
 var aX = document.getElementsByTagName_r('textarea');
 
 for ( var iI = 0; aX.length > iI; iI++ )
 {
   if ( aX[iI].getAttribute('maxlength') )
   {
     aX[iI].onkeyup = aX[iI].onchange = DjTextArea_CheckMaxlength;
   }
 }
} //@ END OF DjTextArea_AddMaxlengthAttr()
 
function DjTextArea_CheckMaxlength()
{
 var iMaxLen = parseInt(this.getAttribute('maxlength'));
 var iCurLen = this.value.length;
 
 if ( this.getAttribute && iCurLen > iMaxLen )
 {
   this.value = this.value.substring(0, iMaxLen);
 }
} //@ END OF DjTextArea_CheckMaxlength()
</script>
</head>
.....
<body onload="DjTextArea_AddMaxlengthAttr();">
 
 
 
首先在textarea 上定义一个 maxlength 属性:
 
<textarea rows="3" cols="40" maxlength="200" onkeydown="checklength(this);"></textarea>
 
然后添加这个方法就行了!
 
function checklength(obj) {
   var max = obj.maxlength;
   if(max == null || max == "" || max == undefined) {
     return;
   }
   if(obj.value.length > max) {
     alert("请不要超过最大长度:" + max);
    obj.value=obj.value.substring(0,(max-1));
     return;
   }
 }
挺方便吧!!!
posted @ 2016-12-12 10:40  尹成亮  阅读(1025)  评论(0编辑  收藏  举报