一个textarea ,如何才能限制文本框中用户输入的字符数?
例如限制为10个,则输入第十一个字符时便不能输入。而且不能在字符满了的时候屏蔽键盘(例如:这个时候删除键应该是可以用的)
还有就是要实现全角和半角的识别。全角为2个字符,半角为一个字符。
当输入 'abcdefg啊'   后,不能输入一个汉字,只能输入一个半角字符。

解决方案 »

  1.   

    用prototype为String对象增加一个新方法 比如length2,找出字符串中有多少个汉字,然后将这个数字加上字符串的length的值就是你要的结果了。
    String.prototype.length2 = function() {
        var cArr = this.match(/[^\x00-\xff]/ig);
        return this.length + (cArr == null ? 0 : cArr.length);
    }然后在textarea的onkeypress或down事件里判断长度就可以了
      

  2.   

    我是用onkeypress方法,但是得到的字符总是晚了一步。
    例如:我在textarea中输入1时,得到的字符是null ,第二次输入2时,得到的字符是1。
    请问是怎么回事?怎样解决?
      

  3.   

    找到解决的办法了,用setTimeout就可以了
      

  4.   

    各位大哥救命啊!又遇到问题了:(
    现在我把textarea限制为10个字符。我输入1234567890 或者 123456789 ,然后我切换输入法,输入 ‘啊’ ,结果前面的数字都没了,输入框内就剩下一个 ‘啊’ 了。请问是什么原因阿?
      

  5.   

    struts不是用validation作驗證的嗎?
      

  6.   

    怎么没有高手来啊????
    现在我把textarea限制为10个字符。我输入1234567890 或者 123456789 ,然后我切换输入法,输入 ‘啊’ ,结果前面的数字都没了,输入框内就剩下一个 ‘啊’ 了。请问是什么原因阿?难道输入法和javascript有什么冲突吗?
      

  7.   

    某些情况下是会有冲突的。你换一下输入法和浏览器试试看。另,限制长度你还是用input type='text'比较简单,否则你要做好面对困难的思想准备。
      

  8.   

    换成清华紫光输入法没有问题。
    如果用input type='text'应该怎样做才能够让text能够输入多行文字?
      

  9.   

    text框(不是textarea)能不能输入多行数据阿?
    我想用text框再试一试
      

  10.   

    to: hax(海曦)
    input type='text' 能不能输入多行数据阿?可以给个例子吗?