假设页面上有个lable和textbox ,只允许textbox 输入150个字。当在textbox中写字时,label实时计算textbox里面的字数,显示还可以写的字数。
这怎样实现啊。
问题解决马上揭贴。

解决方案 »

  1.   

    <script language=javascript>
    <!--
    function bb()
    {
    document.getElementById("Label1").innerText = document.getElementById("TextBox1").value.length;
    setTimeout("bb()",10);
    }
    //-->
    </script><asp:TextBox onkeypress=bb(this)  Width="100%" id="TextBox1" runat="server" TextMode="MultiLine" Height="100%"></asp:TextBox>
      

  2.   

    <script language="javascript">
    function changeHints(){
    var l=strlength(document.frmAnnounce.subject.value)
    if (l<=100) {
    if (document.all!=null) document.all("hints").innerHTML="还可以输入"+(100-l)+"字节"
    }
    else{
    if (document.all!=null) {
    document.all("hints").innerHTML="<font color=red>输入的字节数超出100字节</font>"
    }
    }
    return true
    }
    </script>
    <input type="text" name="subject" maxlength="255" size="40" value="" onKeyDown="return changeHints()" onKeyUp="return changeHints()"> (<span id="hints" color="red">还可以输入100字节</span>) 
      

  3.   

    <form name="test" >
    <input type="text" name="num" onblur="count()">
    <input type="text" name="num1" onblur="count()">
    <input type="text" name="num2" >
    </form><script language='javascript'>
       function count()
       {
          document.test.num2.value=document.test.num.value + document.test.num1.value;
         }
    </script>
      

  4.   

    一般是放个文本筐用css把它打扮的象个label
    然后textarea内onkeydown内计算现在还剩几个字符...
      

  5.   

    扣了1个 测试过的
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="gb2312" lang="gb2312">
    <head>
    <title> New Document </title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <meta name="title" content="" />
    <meta name="author" content="活靶子,Huobazi,www.AspxBoy.com" />
    <meta name="subject" content="" />
    <meta name="language" content="gb2312" />
    <meta name="keywords" content="" />
    <meta name="Copyright" content="www.AspxBoy.com" />
    <meta name="robots" content="all" />
    <SCRIPT language=JavaScript src="/js/msgindex.js"></SCRIPT><SCRIPT language=JavaScript>
    <!--
    function selectmsg(str)
    {
    document.formscsend.message.value = str;
    onCharsChange(document.formscsend.message);
    document.formscsend.message.focus();
    document.formscsend.message.select();
    } function inputs(str)
    {
    document.formscsend.message.value=document.formscsend.message.value+str;
    onCharsChange(document.formscsend.message);
    document.formscsend.message.focus();
    }
     function onCharsChange(varField) {
         var leftChars = getLeftChars(varField);
         if ( leftChars >= 0) {  
      document.formscsend.charsmonitor.value=leftChars;
      return true;
         } else {
          document.formscsend.charsmonitor.value="0";
          window.alert("最多只能输入140个字符! ");
          var len = document.formscsend.message.value.length + leftChars; 
      document.formscsend.message.value = document.formscsend.message.value.substring(0, len);
      leftChars = getLeftChars(document.formscsend.message);
          if ( leftChars >= 0) {  
          document.formscsend.charsmonitor.value=leftChars;
    }
            return false;    
         }
     }  function getLeftChars(varField) {
        var i = 0;
        var counter = 0;
        var cap = 140;          for (i = 0; i< varField.value.length; i++) {    
         if (varField.value.charCodeAt(i) > 127 || varField.value.charCodeAt(i) == 94) {
         cap = 70;    
          }
        }
        
        var leftchars = cap - varField.value.length;    
        
        return (leftchars);
     }
        //--></SCRIPT>
    </head>
    <body>
    <form name="formscsend">
    剩余字符: <input name=charsmonitor style="border:none;" tabindex=100 value=140 e=5 readonly>
    <br />
    <TEXTAREA 
    onpaste="return onCharsChange(this);" 
    onkeyup="return onCharsChange(this);" 
    tabIndex=1 name=message 
    onchange="return onCharsChange(this);" 
    cols="32" rows="6" class="font1"
    ></TEXTAREA> </form></body>
    </html>
      

  6.   

    上面的代码中
    <SCRIPT language=JavaScript src="/js/msgindex.js"></SCRIPT>
    可以去掉了
      

  7.   

    用TextBox的TextChanged事件,在事件里面加入代码 label.text = (150-textbox.text.length).ToString();private void textbox_TextChanged(object sender, System.EventArgs e)
    {
         label.text = (150-textbox.text.length).ToString();//这里不一定是这样,转为string即可。
    }
      

  8.   

    to: xiahouwen(活靶子.NET) 
    你的代码可行。
    但有提示“未能找到任何属性onpaste”。
      

  9.   

    to: xiahouwen(活靶子.NET) 
    你的代码如果我改成<form name="formscsend" runat=server>会出错。
    to: gsxzm(肖明) 
    你的这个方法不是“实时”的啊
      

  10.   

    顶。急啊。在线等。是不是应该用JAVASCRIPT来实现?
      

  11.   

    <div id=show></div>
    <TEXTAREA maxlength=150 onkeyup="mm(this)"></TEXTAREA>
    <SCRIPT LANGUAGE="JavaScript">
    String.prototype.lenB = function()
    {
      return this.replace(/[^\x00-\xff]/g,"**").length;
    }
    function mm(e)
    {
      var max = e.maxlength;  //注意maxlength大小写对应
      var len = e.value.lenB();
      document.getElementById("show").innerText = "你还可以输入 "+ (max-len) +" 个字!";
    }
    </SCRIPT>
      

  12.   

    to : meizz(梅花雪 封闭开发中) 
    谢谢。我要的就是这种效果。
    但能不能改进一点点。就是让“你还可以输入xx字”显示在一个标签里,并且为负数的时候字体变红?
    谢谢指点。
      

  13.   

    <form name="test" >
    <input type="text" name="num" onblur="count()">
    <input type="text" name="num1" onblur="count()">
    <input type="text" name="num2" >
    </form><script language='javascript'>
       function count()
       {
          document.test.num2.value=document.test.num.value + document.test.num1.value;
         }
    </script>
      

  14.   

    放在标签里, 你自己做<TEXTAREA maxlength=150 onkeyup="mm(this)"></TEXTAREA>
    <label id=show></label><SCRIPT LANGUAGE="JavaScript">
    String.prototype.lenB = function()
    {
      return this.replace(/[^\x00-\xff]/g,"**").length;
    }
    function mm(e)
    {
      var max = e.maxlength;  //注意maxlength大小写对应
      var len = e.value.lenB();
      var n   = max-len;
      var str = "<font "+ (n>0?"":"color=red") +">你还可以输入 "+ n +" 个字!</font>";
      document.getElementById("show").innerHTML = str;
    }
    </SCRIPT>
      

  15.   

    to: meizz(梅花雪 封闭开发中) 
    我现在这样写:<form id="Form1" method="post" runat="server">
    <div id="show"></div><TEXTAREA maxlength="150" onkeyup="mm(this,'Textarea1')" runat="server" id="txt" style="WIDTH: 452px; HEIGHT: 186px" rows="11" cols="54"></TEXTAREA>&nbsp;<TEXTAREA runat="server" id="Textarea1" NAME="Textarea1" style="Z-INDEX: 101; LEFT: 10px; POSITION: absolute; TOP: 259px"></TEXTAREA><SCRIPT LANGUAGE="JavaScript">
    String.prototype.lenB = function()
    {
      return this.replace(/[^\x00-\xff]/g,"**").length;
    }
    function mm(e,Textarea1)
    {
      var max = e.maxlength;  //注意maxlength大小写对应
      var len = e.value.lenB();
      var n   = max-len;
      var str = "<font "+ (n>0?"":"color=red") +">你还可以输入 "+ n +" 个字!</font>";
      document.getElementById("show").innerHTML = str;
      window.document.all[Textarea1].value =document.getElementById("show").innerHTML;
    }
    </SCRIPT></form>请指出如何改进最后一句
    window.document.all[Textarea1].value =document.getElementById("show").innerHTML;
    另外,“asp:TextBox id="TextBox1"” 和“TEXTAREA”有何不同?
      

  16.   

    <asp:TextBox TextMode="MultiLine"></asp:TextBox>
    这种多行模式的文本框在客户端HTML代码里就是 textarea
    而没有设置多行模式的文本框在客户端生成的是<input type="text">function mm(e,Textarea1)
    {
      var max = e.maxlength;  //注意maxlength大小写对应
      var len = e.value.lenB();
      var n   = max-len;
      var e   = document.forms[0].elements[Textarea1];
      e.style.color = n>0 ? "" : "red";
      e.value = "你还可以输入 "+ n +" 个字!";
    }在文本域里是不能直接用HTML标签指定字体颜色的