struts中textarea框限制输入字符长度的问题。(区分全角、半角)
一个textarea ,如何才能限制文本框中用户输入的字符数?
例如限制为10个,则输入第十一个字符时便不能输入。而且不能在字符满了的时候屏蔽键盘(例如:这个时候删除键应该是可以用的)
还有就是要实现全角和半角的识别。全角为2个字符,半角为一个字符。
当输入 'abcdefg啊' 后,不能输入一个汉字,只能输入一个半角字符。
问题点数:50、回复次数:12Top
1 楼dvictor(大学之道 在明明德)回复于 2006-01-12 14:58:42 得分 20
用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事件里判断长度就可以了Top
2 楼chtfallcn(hawk)回复于 2006-01-12 15:30:16 得分 0
我是用onkeypress方法,但是得到的字符总是晚了一步。
例如:我在textarea中输入1时,得到的字符是null ,第二次输入2时,得到的字符是1。
请问是怎么回事?怎样解决?Top
3 楼chtfallcn(hawk)回复于 2006-01-12 15:35:28 得分 0
找到解决的办法了,用setTimeout就可以了Top
4 楼chtfallcn(hawk)回复于 2006-01-12 16:26:05 得分 0
各位大哥救命啊!又遇到问题了:(
现在我把textarea限制为10个字符。我输入1234567890 或者 123456789 ,然后我切换输入法,输入 ‘啊’ ,结果前面的数字都没了,输入框内就剩下一个 ‘啊’ 了。请问是什么原因阿?
Top
5 楼flyhxd(韓青)回复于 2006-01-12 17:18:36 得分 0
struts不是用validation作驗證的嗎?Top
6 楼chtfallcn(hawk)回复于 2006-01-13 10:14:10 得分 0
怎么没有高手来啊????
现在我把textarea限制为10个字符。我输入1234567890 或者 123456789 ,然后我切换输入法,输入 ‘啊’ ,结果前面的数字都没了,输入框内就剩下一个 ‘啊’ 了。请问是什么原因阿?
难道输入法和javascript有什么冲突吗?Top
7 楼hax(海曦)回复于 2006-01-13 12:02:03 得分 10
某些情况下是会有冲突的。你换一下输入法和浏览器试试看。
另,限制长度你还是用input type='text'比较简单,否则你要做好面对困难的思想准备。Top
8 楼chtfallcn(hawk)回复于 2006-01-13 13:11:31 得分 0
换成清华紫光输入法没有问题。
如果用input type='text'应该怎样做才能够让text能够输入多行文字?Top
9 楼dlxu(脱离纯粹Coding阶段)回复于 2006-01-13 13:11:59 得分 10
不过好像别人可以通过鼠标的复制粘贴来达到输入超过长度的目的的Top
10 楼chtfallcn(hawk)回复于 2006-01-13 17:05:29 得分 0
text框(不是textarea)能不能输入多行数据阿?
我想用text框再试一试Top
11 楼chtfallcn(hawk)回复于 2006-01-13 17:28:04 得分 0
to: hax(海曦)
input type='text' 能不能输入多行数据阿?可以给个例子吗?Top
12 楼hax(海曦)回复于 2006-01-14 00:46:38 得分 10
input不能多行。Top




