<html>
<head>
<title>js限制输入长度,中英文</title>
<script type="text/javascript" >
String.prototype.trim = function() {
 
 return this.replace(/(^\s*)|(\s*$)/g, "");
}
function checkWord(len,evt){
   if(evt==null)
   evt = window.event;
   var src = evt.srcElement? evt.srcElement : evt.target;
   var str=src.value.trim();
   myLen=0;
   i=0;
   for(;(i<str.length)&&(myLen<=len);i++){
    if(str.charCodeAt(i)>0&&str.charCodeAt(i)<128)
     myLen++;
     else
     myLen+=2;
   }
   if(myLen>len){
    document.getElementById("one").innerHTML="汉字5个,英文10个";
//alert("TTTT")
    src.value=str.substring(0,i-1);
   return false;
   }
}
function ss()
{
var st=document.gg.giftDescribe.value;
if(st.length==0)
{document.getElementById("one").innerHTML="不能为空";
return false;
}
}</script>
</head>
<body>
<form name="gg" style="border:1px solid #3300CC; width:800px; padding:0;
margin:0 auto" action="" onSubmit="return ss()">
<input type="text" name="giftDescribe" onKeyUp="checkWord(10,event)" onBlur="ss()" id="two">10个字符(中文5个)
<input type="submit" value="提交" name="ti">
</form>
<div id="one" style="border:1px solid #000000; height:30px; width:60px;">内容</div>
</body>
</html>

解决方案 »

  1.   

    你好,你运行下这个,就是说你输入英文或者是中文,只要后面是空格,那个内容框里就出现提示和限制了,
    问题是我加了String.prototype.trim = function() {
     
     return this.replace(/(^\s*)|(\s*$)/g, "");
    }
    这个函数,是去掉前后空格的,可最后在文本里输入空格时,内容里还是不提示信息
      

  2.   

    你的这个代码是没有问题的 你的这段函数的意思是去掉输入框中前后的所有空格
    给你改了下 你看看你是不是想要这种
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>js限制输入长度,中英文</title>
    <script type="text/javascript" >
    String.prototype.trim = function() {
      
     return this.replace(/(^\s*)|(\s*$)/g, "");
    }
    function checkWord(len,evt){
      
      evt = evt || window.event;
      var src = evt.srcElement? evt.srcElement : evt.target;
      src.value = src.value.trim();
      var str=src.value;
      myLen=0;
      i=0;
      for(;(i<str.length)&&(myLen<=len);i++){
      if(str.charCodeAt(i)>0&&str.charCodeAt(i)<128)
      myLen++;
      else
      myLen+=2;
      }
      if(myLen>len){
      document.getElementById("one").innerHTML="汉字5个,英文10个";
    //alert("TTTT")
      src.value=str.substring(0,i-1);
      return false;
      }
    }
    function ss()
    {
    var st=document.gg.giftDescribe.value;
    if(st.length==0)
    {document.getElementById("one").innerHTML="不能为空";
    return false;
    }
    }</script>
    </head>
    <body>
    <form name="gg" style="border:1px solid #3300CC; width:800px; padding:0;
    margin:0 auto" action="" onSubmit="return ss()">
    <input type="text" name="giftDescribe" onKeyUp="checkWord(10,event)" onBlur="ss()" id="two">10个字符(中文5个)
    <input type="submit" value="提交" name="ti">
    </form>
    <div id="one" style="border:1px solid #000000; height:30px; width:60px;">内容</div>
    </body>
    </html>
      

  3.   

    楼主可以把form里的border去掉,这样就看不出有边框了。
    如果想保留边框的话,那只能设置form的width,楼主程序里把form的width设为800px,那肯定有空格,可以把width设为400px,然后在提交按钮里添上style="float:right",空格便不存在了。
    希望有你帮助!
      

  4.   

    大哥,我说的是1楼的你“fanchuanzhidu”,一定加我
      

  5.   

    哥们还有一个问,刚才那个代码,你帮我解答那个代码。我想让提交后,如果信息不正确,回返回那个表单的焦点。但是加了document.gg.giftDescribe.focus();,还是不行