作者chenwj (UenoJuri)
看板Ajax
标题[问题] 限制一堆的textarea...
时间Thu Apr 15 20:10:34 2010
各位好
我想写一个外观3列 20行的textarea
但是因为要加上一些限制
所以势必要用到javascript
我的限制是
1.使用者最多最多只能输入60个字元
2.最多只能打到三行
3.每一行最多只能20个字元
前面这几项都可以写出来
重点在输入途中可以跳到之前打的文字中继续插入文字
或是在任意地方乱按Enter Backspace Delete
然後又不会违反前面三个限制
要考虑非常多可能的case来做字数以及行数的判断
已经写了好几天了 一直都有bug在 = =
不晓得textarea有办法取得某个index的字元吗?
比如说 textarea内容为 "abcde"
则xxx.value [3]就是 d 之类的
内部的value有办法转换存到一个array上吗?
变成 A[0] = 'a', A[1] = 'b', ... 依此类推
请问有大大可以指点一下吗!
或是有其他更好的方法?
谢谢!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.136.209.165
※ 编辑: chenwj 来自: 220.136.209.165 (04/15 20:13)
1F:→ TonyQ:可以啊 , 先取textarea.value 然後再做substring 04/15 20:27
2F:→ TonyQ:更简单的方法 , alert("hello"[0]); 字串本身就是char array 04/15 20:28
3F:→ chrisQQ:判断 \r\n 或 \n 的数量来限制行数? 04/15 21:58
4F:推 No:/^[^\r\n]{0,20}(\r\n[^\r\n]{0,20}){0,2}$/.test(value) //IE 04/15 23:03
5F:→ No:/^[^\n]{0,20}(\n[^\n]{0,20}){0,2}$/.test(value) //Firefox 04/15 23:04
6F:→ chenwj:请问No大 这行是要加在哪边呢 不是很清楚 @@ 04/16 01:04
7F:推 No:检查你那三个条件用的,不过我觉得你的问题好像不是出在这 囧 04/16 01:24
8F:→ No:我猜你要的应该是输入的时候,若结果不符合规则就输入无效这样? 04/16 01:26
9F:→ chrisQQ:onChange ? 04/16 15:41
10F:→ TonyQ:onKeydown 纪录资料 , onkeyup决定要不要放弃这次输入 XD 04/16 16:27
11F:→ TonyQ:其实也可以考虑在onkeydown 决定要不要return false 04/16 16:27