|
Счетчик символов (JavaScript)
|
|
| phan-tom | Отредактировал phan-tom - Воскресенье, 15 Марта 2009, 10:49 Дата: 15 Марта 2009, 10:44 | Сообщение # 1 |  ● ● ● ● ● 38 сообщений Статус: Offline | Всем добрый! Мне на сайт, точнее на форум нужен скрипт, отсчитывающий количество символов. Есть скрипт на отсчет символов в обратном порядке, считая от 40.000. Code <script type="text/javascript"> function chklen(){max_limit=40000;str=document.addform.message.value;len=str.length;if(len>max_limit){str=str.substring(0,max_limit); len=str.length;document.addform.message.value=str}document.addform.fcounter.value=(max_limit-document.addform.message.value.length); while(document.addform.fcounter.value<0){document.addform.message.value=str.substring(0,len-1); str=document.addform.message.value;len=str.length;document.addform.fcounter.value=(max_limit-document.addform.message.value.length)}} </script>
Счетчик символов: <input readonly class="codeButtons-forum" size="6" name="fcounter"> Проблема в том, что я в javascript'е знаю только основы, так как начал недавно изучать. Мне нужен скрипт, отсчитывающий символы в прямом порядке, а не в обратном, то есть 1,2,3,4,5 и т.д. сколько мы уже набрали в форме ответа. Кто сможет помочь? | | |
|
| Кронд | Дата: 15 Марта 2009, 10:53 | Сообщение # 2 | ● ● ● ● ● 329 сообщений Статус: Offline | На jQuery есть вариант. Это в "форму добавления сообщения", после $BBCODES$ Quote <input id="num" type="text" class="codeButtons" readonly="true" style="width:40;text-align:center" title="Счётчик символов"> А туда же, но куда-нибудь в конец: Code <script type="text/javascript" language="javascript"> $("#message").bind('focus', function() {nc()}); $("#message").bind('keydown', function() {nc()}); $("#message").bind('keyup', function() {nc()}); $("#message").bind('keypress', function() {nc()}); $("#message").bind('change', function() {nc()}); function nc(){num = document.getElementById('message').value.length; document.getElementById('num').value = num;} </script> | | |
|
| phan-tom | Дата: 15 Марта 2009, 11:03 | Сообщение # 3 |  ● ● ● ● ● 38 сообщений Статус: Offline | Кронд, мне бы желательно на простом JavaSCript'е. Нехочу выбиваться из колеи если так можно выразиться Ну попробуем и этот для начала...Добавлено (15 Март 2009, 11:03) --------------------------------------------- Что-то не получилось... | | |
|
| Кронд | Дата: 15 Марта 2009, 15:41 | Сообщение # 4 | ● ● ● ● ● 329 сообщений Статус: Offline | phan-tom, А jQuery подключил? Тут где-то есть инструкция. | | |
|
| phan-tom | Дата: 15 Марта 2009, 15:44 | Сообщение # 5 |  ● ● ● ● ● 38 сообщений Статус: Offline | Кронд, конечно подключил, я не ведь не дундук  Добавлено (15 Март 2009, 15:44) --------------------------------------------- Кронд, кстати, Привет теска) | | |
|
| Кронд | Дата: 15 Марта 2009, 19:59 | Сообщение # 6 | ● ● ● ● ● 329 сообщений Статус: Offline | В общем, где-то тут я уже поднимал эту тему, посмотри.Добавлено (15 Март 2009, 19:59) --------------------------------------------- И тебе не болеть =) | | |
|
| Бармалей | Дата: 16 Марта 2009, 11:18 | Сообщение # 7 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | Code <script type="text/javascript"> document.getElementById("message").addEventListener('focus', nc, false); document.getElementById("message").addEventListener('keydown', nc, false); document.getElementById("message").addEventListener('keyup', nc, false); document.getElementById("message").addEventListener('keypress', nc, false); document.getElementById("message").addEventListener('change', nc, false); function nc(){document.getElementById('num').value = document.getElementById('message').value.length} </script> Не будет работать в IE. Для него addEventListener заменить на attachEvent и названия эвентов писать с приставкой on. Ну и третий аргумент не нужен. Впрочем и с ним должно работать.
 | | |
|
| mob_dp | Дата: 16 Марта 2009, 13:08 | Сообщение # 8 | ● ● ● ● ● 4112 сообщений Статус: Offline | Подскажите как проверить в тексте наличие "(" и ")", и если кол-ва символов не равны, блокировать кнопку добавления поста. Кнопку блокнуть я могу, а вот посчитать символы я не знаю. ps/ задрали юзеры своими скобочками тупыми  | | |
|
| Бармалей | Дата: 16 Марта 2009, 13:23 | Сообщение # 9 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | Code function checksubmit(){ var str = document.getElementById('message').value, opened = false; for(var i=0; i<str.length; i++){ if( str.charAt(i)=='(' ) if( opened ) return false; else opened = true; if( str.charAt(i)==')' ) if( !opened ) return false; else opened = false; } return true; } Только смайлики будут блокироваться
 | | |
|
| mob_dp | Дата: 16 Марта 2009, 13:32 | Сообщение # 10 | ● ● ● ● ● 4112 сообщений Статус: Offline | Только смайлики будут блокироваться Тогда прицеплю к названию и описанию темы, там смайлов нет. На тело сообщения сделаю проверку на "((" и "))". | | |
|
| phan-tom | Дата: 20 Марта 2009, 17:36 | Сообщение # 11 |  ● ● ● ● ● 38 сообщений Статус: Offline | Бармалей, будь добр пожалуйста. Нужно чтобы BBкоды не воспринимались как символы. Можно ли?  | | |
|
| Бармалей | Дата: 20 Марта 2009, 17:51 | Сообщение # 12 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | Всмысле? Как можно превратить букву в не-букву? 
 | | |
|
| cucYa | Дата: 20 Марта 2009, 18:09 | Сообщение # 13 |  ● ● ● ● ● Совращенный мальчик.7317 сообщений Статус: Offline | Бармалей, он имеет ввиду чтобы они не считались... | | |
|
| Бармалей | Дата: 20 Марта 2009, 18:59 | Сообщение # 14 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | Э... Все bb коды вместе с содержимым чтоли считать?
 | | |
|
| phan-tom | Отредактировал phan-tom - Пятница, 20 Марта 2009, 22:04 Дата: 20 Марта 2009, 22:04 | Сообщение # 15 |  ● ● ● ● ● 38 сообщений Статус: Offline | Бармалей, кхм.. я незнаю, вроде выразился понятно. Объясню на примере: ----- 1.Сейчас при счете... Текст - 5 символов [b ]Текст[\b] - 12 символов 2.А мне надо чтобы... [b ]Текст[\b] - 5 символов ----- То есть чтобы содержимое и сам BB код не фиксировалось счетчиком. Где то я такое видел, но видел я это на обратном счетчике (10,9,8 и т.д.) | | |
|
| NecroProger | Дата: 20 Марта 2009, 22:41 | Сообщение # 16 |  ● ● ● ● ● 1024 сообщения Статус: Offline | phan-tom, хм... ну, можно по-тупому: посчтитать общее кол-во символов, потом найти все подстроки с шаблоном [....]....[/....], вычесть из первого числа количество подчёркнутых символов в каждой подстроке. Есть недостаток: например, если напишем (а бб-кода bla нет) , то количество символов будет 5. | | |
|
| phan-tom | Дата: 20 Марта 2009, 22:50 | Сообщение # 17 |  ● ● ● ● ● 38 сообщений Статус: Offline | NecroProger, давайте хоть так. )) Мне и так пойдет.  | | |
|
| Бармалей | Дата: 21 Марта 2009, 06:01 | Сообщение # 18 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | Есть недостаток: например, если напишем (а бб-кода bla нет) Нужно просто составить список допустимых bb кодов.
 | | |
|
| }{0тт@бь)ч | Дата: 21 Марта 2009, 09:06 | Сообщение # 19 | ● ● ● ● ● 1089 сообщений Статус: Offline | 1.Сейчас при счете... Текст - 5 символов [b]Текст [/b] - 12 символов 2.А мне надо чтобы... [b]Текст[/b] - 5 символов ... x.innerHTML=y.value.replace(/\[b\]/gi,'').replace(/\[\/b\]/gi,'').replace(/.../gi,''); По аналогии. Однако сервер по-любому эти коды воспринимать как символы, и может получиться так, что длина сообщения выше допустимой на *, хотя при добавлении выводится допустимая длина | | |
|
| patrik | Отредактировал patrik - Воскресенье, 22 Марта 2009, 22:44 Дата: 22 Марта 2009, 22:10 | Сообщение # 20 |  ● ● ● ● ● 23 сообщения Статус: Offline | *здесь_был_чрезвычайно_глупый_пост* | | |
|