Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ограничение количества символов, в форме для отправки 
:(
    Опции темы
PARROT
Дата 21.4.2005, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 1
Всего: 50



Меня интересует скрипт для ограничения символов для отправки форм.
Скрипт есть, но он не правильно работает. Можно ввести большее количество символов, методом копирования-вставки.

Код

var count=300;
function Lyad()
{
 document.formText.t1.value=count
 document.formText.t2.value=count
}
function text1Change()
{
 a=document.formText.text1.value.length;
 if((a)>count)document.formText.text1.value=document.formText.text1.value.substring(0,count);
 a=document.formText.text1.value.length;
 document.formText.t2.value=count-a;
}


А это то что пишется у формы:

Код

<td colspan=2 align=center><TextArea name="text1" rows=5 cols=30  onkeyup="text1Change()"></TextArea><br>
 Осталось на ввод:
 <input type="text" name="t2"  size="4" maxlength="4" disabled="false">
</td>


Вопрос такой: Можно ли исправить этот скрипт? Или smile


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Irokez
Дата 21.4.2005, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: 1
Всего: 53



у формы надо на onSubmit поставить проверку на длину текста
Добавлено @ 17:09
и в любом случае на сервере тоже надо проверить длину полученного сообщения
PM   Вверх
PARROT
Дата 21.4.2005, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 1
Всего: 50



smile


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
batigoal
Дата 21.4.2005, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Я бы сделал так:
Код

<html>
<head>
<script>
var count=20;
var last="";
function text1Change()
{
 if(document.getElementById('text1').value.length>count)
 {
   document.getElementById('text1').value = last;
   alert("Too long!");
 }
 else
 {
   last=document.getElementById('text1').value;
   document.getElementById('text2').value = count - document.getElementById('text1').value.length;
 }
}
</script>
</head>
<body>
<TextArea id='text1' name="text1" rows=5 cols=30  onKeyUp="return text1Change();"></TextArea><br>
 Left:
 <input id="text2" type="text" name="t2" value="20" size="4" maxlength="4" disabled="false">
</body>
</html>



--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Sardar
Дата 21.4.2005, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Если вспомним про событие onChange, то задача тут же сводится к рутине:
Код
<html>
<head>
<script type="text/javascript">
maxlen=300;
function checkLength(ob) {
  if(ob.value.length>maxlen) ob.value=ob.value.substring(0, maxlen);
  document.getElementById("text2").value=maxlen-ob.value.length;
}
</script>
</head>
<body>
<textarea id="text1" name="t1" rows="5" cols="30"  onkeyup="checkLength(this);" onchange="checkLength(this);"></textarea><br>
 <input id="text2" type="text" name="t2" value="300" size="4" maxlength="4" disabled="false" />
</body>
</html>



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Aliance
Дата 21.4.2005, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



PM MAIL WWW ICQ Skype   Вверх
batigoal
Дата 22.4.2005, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Цитата(Sardar @ 21.4.2005, 19:02)
Если вспомним про событие onChange

У меня почему-то с ним не работало smile


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Aliance
Дата 22.4.2005, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Lamer George
А с ним проще. Это событие возникает при изменении default value эл-та.
Добавлено @ 11:56
Что именно не получалось, кидай код.
PM MAIL WWW ICQ Skype   Вверх
batigoal
Дата 22.4.2005, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Код тот же самый, только вместо onKeyUp - onChange. Но валидация происходит только тогда, когда я убираю фокус с поля или закрываю браузер.
Добавлено @ 12:35
Кстати, и в коде Sardar'а если убрать onkeyup, будет то же самое.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Sardar
Дата 22.4.2005, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Всё правильно, событие onchage ловим для конечной проверки, что бы вставить из буффера обмена нельзя было. А onkeyup для вывода инфы сколько символов осталось, если это не нужно, то событие убираем.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Aliance
Дата 22.4.2005, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Цитата(Lamer @ 22.4.2005, 13:32)
валидация происходит только тогда, когда я убираю фокус с поля

Повторюсь, так и длжно быть. Это не ошибка.
PM MAIL WWW ICQ Skype   Вверх
batigoal
Дата 22.4.2005, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Я понимаю. Просто у <input type="text"> другое поведение, вот я и ожидал аналогичного от textarea.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Sardar
Дата 22.4.2005, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Lamer @ 22.4.2005, 13:41)
Я понимаю. Просто у <input type="text"> другое поведение, вот я и ожидал аналогичного от textarea.

Теперь я не понимаю smile Textarea и input:text ничем не отличаются. Приведи свой код.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
batigoal
Дата 22.4.2005, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Пардон, напутал. Отличий действительно нет. А вот у select'a событие onChange происходит не тогда, когда он теряет фокус, а когда выбираешь другую опцию.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Aliance
Дата 22.4.2005, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Lamer George
Естественно. И там тоже не когда теряет фокус (а то бы это было бы onblur). А тогда - когда изменяешь default value smile
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0970 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.