用jsp如何在客户端限制多行文本框的输入长度?最好可以提示用户还可以在输入多少字符?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【zylt】截止到2008-07-21 10:16:54的历史汇总数据(不包括此帖):
    发帖的总数量:3                        发帖的总分数:50                       每贴平均分数:16                       
    回帖的总数量:2                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:3                        结贴的总分数:50                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

    1. 两种方式,一种格式纯粹的客户端验证使用js 一把用js的正则表达式,来判断输入子字符的长度 甚至输入的是怎样的字符
    2.是服务器端验证,当然可以把信息反馈给客户端的。。
      

  3.   

    最好还是用js在客户端实现
    如果在服务端实现的话,动态提示需要不停的postback或callback
      

  4.   

    建议你在onKeydwon,onkeyup事件里写判断.onkeydown之前判断一下长度是否还可以输入,onkeyup之后更新一个区域,提示还有多少字符可以输入
      

  5.   

    <!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">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title> 无标题文档 </title></head><body>
    <textarea cols="60" rows="10" id="text1"></textarea><br>
    剩余字符:<span id="textleft">20</span>
    </body>
    </html> 
    <script language="javascript">
    var otext = document.getElementById("text1");
    var otextleft = document.getElementById("textleft");
    var re = /[^\x00-\xff]/g;
    var maxLength = 20;
    window.onload = function(){
        if(document.all)
            otext.onpropertychange = textleft;
        else
            otext.onkeypress = textleft;
    }
    function textleft()
    {
        var str = otext.value;
        str = str.replace(re,"xx");//中文字符当2个字符处理 如果不用的话主是掉本行
        otextleft.innerHTML = maxLength - str.length;
    if((maxLength - str.length)<0){
    otext.value=otext.value.substr(0,otext.value.length-1);
    }
    }
      

  6.   


    <div>
            <textarea id="TextArea1" cols="20" rows="20" onkeyup="check()"></textarea>
            <label id="Label1"></label>
        </div>
        <script type="text/javascript">
        function check()
        {
            var textLimit = 200;
            var otextarea = document.getElementById("TextArea1");
            var olabel = document.getElementById("Label1");
            var textLength = otextarea.value.length;
            if(textLength <= textLimit)
            {
                olabel.innerHTML = (textLimit - textLength) + "remains";
            }
            else
            {
                olabel.innerHTML = (textLength - textLimit) + "overflow"
            }
        }
        </script>
      

  7.   

    我原来写的一段代码
    和你的意思差不多function qingchu() {
    var str = document.getElementById("bz").value;
    if(str == "100字以内") {
    document.getElementById("bz").value = "";
    }else {
    return false;
    }
    }
    function jiancechangdu() {
    var str = document.getElementById("bz").value;
    var len = str.length;
    if(len < 101) {
    document.getElementById("zifu").value = len + "字符";
    }else {
    document.getElementById("bz").value = str.substr(0,100);
    document.getElementById("zifu").value = "100字符";
    }
    }
    <td>
      <textarea name="bz" id="bz" style="width: 200px;" onkeyup="jiancechangdu();" onchange="jiancechangdu();" onfocus="qingchu();" oncontextmenu="self.event.returnValue=false">
         100字以内
      </textarea>
    </td>
    <td>
      <input name="zifu" id="zifu" readonly="readonly" style="width: 40px; border: 0px;">
    </td>
      

  8.   

    是对的,建议用第一种,对控件的onkeypress编写事件判断,同事判断汉字等双字节问题。
      

  9.   

    <td>
      <textarea name="bz" id="bz" style="width: 200px;" onkeyup="check(this);" onchange="check(this);" >
         100字以内
      </textarea>
    </td>
    <script type="text/javascript">
      String.prototype.getLength = function(){   
      //得到字符串的真实长度   
          var l=this.length;   
          var n=l   
          for (var   i=0;i<l;i++){   
            if (this.charCodeAt(i)<0||this.charCodeAt(i)>255) 
      n++   
          }   
          return  n   
      }   
        
      function check(obj){   
        var   max=obj.style.maxlength;   
        if(obj.value.getLength()>max){   
        alert("最多可输入"+max/2+"字,请重新输入!");   
        obj.focus();   
        obj.select();   
        }   
      }  </script>
      

  10.   

    去掉了一些看不懂得,就好用了。
    <html>
    <head>
    <script language="javascript">
    var maxLength = 20;
    function textleft()
    {
    var otext = document.getElementById("text1");
    var otextleft = document.getElementById("textleft");
        var str = otext.value;
        otextleft.innerHTML = maxLength - str.length;
    }
    </script>
    </head>
    <body>
    <textarea cols="60" rows="10" id="text1" onkeyup="textleft()"></textarea><br>
    remain:<span id="textleft">20</span>
    </body>
    </html>