我有一个网页,上面有一个textbox,用于输入用户名。但用户名输入中文时只能输入4个,输入英文的时候只能输入8个,中英文混合输入时可以输入8个字节的内容,请问用keypress方法怎么实现?

解决方案 »

  1.   

    我就是想把textbox的可输入字节数控制在8个!
      

  2.   

    http://community.csdn.net/Expert/topic/4865/4865246.xml?temp=.5492975
      

  3.   

    用onchange方法,每改变一次就会执行一次改变事件,这不行。不知道大家那里不明白?因为输入汉字是占2个字节的,而英文是占1个,所以我想应该控制可输入字节数就可以了吧?但怎么控制我不太会。
      

  4.   

    楼上的zhangxiaopin(zxp) 大哥,给个处理方法先!多谢了!
      

  5.   

    不需要用keypress来做吧?
    加一个customValidator,在自定义方法里设一个总长度变量L,逐字判断是否是汉字,如果是,L加2,如果不是L加1,最后判断L的长度确定输入是否合法。
      

  6.   

    楼主,在onblur事件好实现一点
    CS:
    this.TextBox1.Attributes.Add("onblur","check(this);");
    .aspx:
    function check(obj)
    {
    var str = obj.value;
    if (str == null) 
    {
    alert('输入值为空');
    return false;
    }
    var l = str.length;
    var blen = 0;
    for(i=0; i<l; i++) 
    {
    if ((str.charCodeAt(i) & 0xff00) != 0)
    {
    blen ++;
    }
    blen ++;
    }
    if( blen > 8 )
    {
    alert('字节数已超过8');
    return false;
    }
    return true;
    }