Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Не большой конкурс от меня. Приз - шестизначная аська :) |

12.07.2009, 15:50
|
|
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме: 5866479
Репутация:
1809
|
|
Не большой конкурс от меня. Приз - шестизначная аська :)
Сразу попрошу прощения у модераторов, если я ошибся разделом - перенесите плиз, куда нужно.
Вобщем есть код:
Код:
<textarea></textarea>
<input type="text" />
Нужно написать на js как можно минимально и правильно с точки зрения программирования сценарий.
Задача сценария: выводить в текстовом поле оставшееся количество знаков, при вводе символов в текстарии. Допустим, их будет: 500. Как только, при вводе в текстарии количество больше 500 - символ просто не добавляется.
Приз - шестизначый icq uin
P.S. Копипаст подобных форм и последующее переделывание - не приветствуется! Спасибо!
|
|
|

15.07.2009, 03:42
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
хм, интересная задачка оказалась, мой вариант:
Код:
<script>
function isNotMax(e){
e = e || window.event;
var target = e.target || e.srcElement;
var code=e.keyCode?e.keyCode:(e.which?e.which:e.charCode)
switch (code){
case 13:
case 8:
case 9:
case 46:
case 37:
case 38:
case 39:
case 40:
return true;
}
var max = 10; // Максимальное кол-во знаков в textarea (также надо выставить в html-форме)
var l = document.myform.text.value.length;
if (l > max) document.myform.text.value = "";
var a = document.myform.ost.value;
if (a>=0 && l<=max) document.myform.ost.value = max - l;
return target.value.length < max;
}
</script>
<form name="myform">
<textarea rows="10" cols="25" name = "text" onkeyup="return isNotMax(event)" onChange="return isNotMax(event)" onFocus="return isNotMax(event)" onBlur="return isNotMax(event)" onSelect="return isNotMax(event)" onMouseOut="return isNotMax(event)" onMouseMove="return isNotMax(event)" onkeypress="return isNotMax(event)"></textarea>
<input type = "text" name = "ost" size = "5" value= "10">
</form>
Отличия от предыдущего:
1. Грамотная блокировка кнопок - т.е. можно заново перенабрать сообщение
2. Кол-во оставшихся символов считается всегда, если удалить часть текста и начать "донабирать" остаток
3. Защита от вставки большого текста из буфера (копипаст)
Работает в FF, IE и OPERA, что и закономерно, т.к. максимально упрощенно и без извратов старался
Но наверняка можно еще лучше сделать 
|
|
|

15.07.2009, 15:29
|
|
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме: 5111568
Репутация:
2399
|
|
задачка уже давно решена в болталке, непонятно почему тут тема висит
|
|
|

29.07.2009, 14:13
|
|
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме: 5866479
Репутация:
1809
|
|
Pashkela получает шестерочку 17-37-37, так как его код работает без глюков! Большое спасибо!!!!
|
|
|

29.07.2009, 14:37
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
Спасибо 
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|