2010-12-18 16 views
0

我的代码旨在向用户显示文本框中可用的剩余字符数 和文字区域。只有代码完美地适用于<input type="text">,完全不适用于<textarea>textarea的javascript字符计数...不起作用,但适用于<input type =“text”>的

我不知道为什么...我的代码如下

我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> 
+0

我没有看到你的代码任何问题。你正在使用哪种浏览器? – SuperSaiyan 2010-12-18 04:53:55

回答

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); 
    } 
0

我不知道这是否会解决您的问题,但textarea不会像input[type=text]那样工作,因为您必须在这样的内部回显值,如下所示:

<textarea>test</textarea> 

取而代之的是:

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

然而,一个textarea DOM元素应以同样的方式访问,因为在这里可以看到的value属性:

http://jsfiddle.net/bwGKk/

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> 
相关问题