2010-12-18 40 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> 
相關問題