作者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