textarea的javascript字符数...不起作用,但它适用于<input type =“text”/>

时间:2010-12-18 04:31:50

标签: javascript textarea

我的代码旨在向用户显示剩余可用字符的数量  在文本框和文本区域。只有<input type="text">的代码才能完美无缺,而且<textarea>的代码根本不起作用。

我不确定为什么......我的代码在下面

我的js--

 function toCount(entrance,exit,text,characters) {  
  var entranceObj=getObject(entrance);  
  var exitObj=getObject(exit);  
  var length=characters - entranceObj.value.length;  
  if(length <= 0) {  
    length=0;  
    text='<span class="disable"> '+text+' </span>';  
    entranceObj.value=entranceObj.value.substr(0,characters);  
  }  
  exitObj.innerHTML = text.replace("{CHAR}",length);  
}  

我的HTML

<textarea style="overflow-x: hidden;" value="<%=strVariable %>" type="text" id="gBann"       
name="MyName" maxlength="1000" size="1000" rows="8" cols="40"   
onKeyUp="toCount('gBann','uBann','{CHAR} characters remaining',1000);" >  
</textarea>  
<span id="uBann" class="minitext">1000 characters remaining</span>  

3 个答案:

答案 0 :(得分:2)

您想使用document.getElementById而不是getObject。

以下是有效的:

function toCount(entrance,exit,text,characters) {  
    var entranceObj=document.getElementById(entrance);  
    var exitObj=document.getElementById(exit);  
    var length=characters - entranceObj.value.length;  
    if(length <= 0) {  
    length=0;  
    text='<span class="disable"> '+text+' <\/span>';  
    entranceObj.value=entranceObj.value.substr(0,characters);  
    }  
    exitObj.innerHTML = text.replace("{CHAR}",length);  
    }  

答案 1 :(得分:0)

我不确定这是否会解决您的问题,但是textarea不能像input[type=text]那样工作,因为您必须回显元素中的值 < / em>像这样:

<textarea>test</textarea>

而不是:

<textarea value="test"></textarea>

但是,textarea DOM元素的value属性应该以相同的方式访问,如下所示:

http://jsfiddle.net/bwGKk/

答案 2 :(得分:0)

请试试这个javascript:

function Counter(txtfield, limit) { 

            if (txtfield.value.length > maxlimit)
                txtfield.value = txtfield.value.substring(0, maxlimit);

            // else, update 'characters left' counter
            else {                
                document.getElementById('myCounter').innerHTML = maxlimit - txtfield.value.length
            }        
        }

这里“myCounter”是一个跨度id,如500 和“txtfield”是textarea ID。

我的ASP代码:

<asp:TextBox ID="txtMessage" onKeyUp="javascript:textCounter(this,<%=Count%>);" onKeyDown="javascript:textCounter(this,<%=Count%>);"></asp:TextBox>