none
js验证输入汉字和英文字符数问题 RRS feed

  • 问题

  • 我用js验证文本框输入的汉字和英文字符数.到达制定大小后便不可输入.但是现在却是可输入的.那里错误


    <!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><title>
     无标题页
    </title>
        <script language="JavaScript">

         function checkMaxInput(strTxt,maxlen) {
          var v=strTxt.value;  
          var   len   =   0;      
          for(i=0;i<v.length;i++)  
          {  
                  if(v.charCodeAt(i)>256)  
                  {  
                          len   +=   2;  
                  }  
                  else  
                  {  
                          len++;  
                  }  
          }  

       if (len > maxlen)
       {
       v.value = v.substring(0, maxlen);
     //  alert(len);
       }
       else document.getElementById("TextBox2").value = maxlen - len;
       }  
    </script>
    </head>
    <body>
        <form name="form1" method="post" action="jscount.aspx" id="form1">
    <div>
    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTA4MDI0ODY1MWRkFhY6P4SS8ehFHw0/x3PfEL5U6D4=" />
    </div>

        <div>
            <textarea name="TextBox1" rows="2" cols="20" id="TextBox1" onKeyDown="checkMaxInput(this,100)" onKeyUp="checkMaxInput(this,100)" style="height:131px;width:457px;"></textarea>
            <input name="TextBox2" type="text" value="100" readonly="readonly" id="TextBox2" style="width:27px;" /></div>
       
    <div>

     <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwLr6rvRBwLs0bLrBgLs0fbZDKPY7VXE06oFdjw5vFZWTm5s8vuK" />
    </div></form>
    </body>
    </html>


    不用羡慕----那,只是个传说!
    2009年9月2日 6:08

答案

  • 这一举措了

       v.value = v.substring(0, maxlen);
    应当是
      strTxt.value = v.substring(0, maxlen);


    恭喜自己5星用户达成
    • 已标记为答案 极度 2009年9月2日 6:31
    2009年9月2日 6:26
  • v.value = v.substring(0, maxlen);
    这一句话措了
     
    strTxt.value = v.substring(0, maxlen);

    恭喜自己5星用户达成
    • 已标记为答案 极度 2009年9月2日 6:31
    2009年9月2日 6:28

全部回复

  • 这一举措了

       v.value = v.substring(0, maxlen);
    应当是
      strTxt.value = v.substring(0, maxlen);


    恭喜自己5星用户达成
    • 已标记为答案 极度 2009年9月2日 6:31
    2009年9月2日 6:26
  • v.value = v.substring(0, maxlen);
    这一句话措了
     
    strTxt.value = v.substring(0, maxlen);

    恭喜自己5星用户达成
    • 已标记为答案 极度 2009年9月2日 6:31
    2009年9月2日 6:28
  • 韦恩卑鄙  谢谢 我也发现这句错误了

    strTxt.value = strTxt.value.substring(0, maxlen);
    2009年9月2日 6:31