Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сижу туплю... туплю сижу... textarea maxlength - как ?
 
 автор: DDK   (25.01.2006 в 15:53)   письмо автору
 
 

5 лет работаю с HTML, но только сейчас с ужасом заметил отсутствие у поля <textarea> параметра maxlength ! Сделал функцию, обрезающую innerHTML текстового поля, если его length больше допустимого, посадил её в событие onkeypress. Но тут же понял, что это не выход, т.к. даже при вставке текста функция проколется. Так как же лучше это сделать ?! Желательна работоспособность во всех браузерах :)

   
 
 автор: Unkind™   (25.01.2006 в 16:44)   письмо автору
 
   для: DDK   (25.01.2006 в 15:53)
 

Можно проверить с помощью PHP...

<form action="check.php" method="post">
<textarea name="text">
<input type="submit value="Отправить!">
</form>

Check.php:

<?php
if (strlen($_POST['text']) > 100)
{
echo 
"Не больше ста символов!!";
}
?>
<!-- сожержимое страницы -->


P.S. Можно и с помощью JavaScript, но я в нем не силен...А так лучше и то, и то применять - чтоб лишний раз не отправлял некорректные данные и чтоб не обходил ограничение...

   
 
 автор: DDK   (25.01.2006 в 18:41)   письмо автору
 
   для: Unkind™   (25.01.2006 в 16:44)
 

На PHP-то это без проблем ;-) Интересно, как на JS...

   
 
 автор: 12345   (25.01.2006 в 17:08)   письмо автору
 
   для: DDK   (25.01.2006 в 15:53)
 

Повесить её также на onchange

   
 
 автор: codexomega   (25.01.2006 в 18:38)   письмо автору
 
   для: DDK   (25.01.2006 в 15:53)
 

Нет, надо на onkeyup
Посмотрите здесь на форуме есть 2 темы, одна с запретом введения любых символов вместо цифр в поле, другая о том, сколько символов осталось воткнуть в textarea(контролируемая длина строки).

Впрочем вот:
http://softtime.ru/forum/read.php?id_forum=4&id_theme=11062&page=1
http://softtime.ru/forum/read.php?id_forum=4&id_theme=12042&page=1

   
 
 автор: DDK   (25.01.2006 в 18:55)   письмо автору
 
   для: codexomega   (25.01.2006 в 18:38)
 

Спасибо, посадить на onkeyup - действительно самое оптимальное решение ! ну, а кульхацкеров уже PHP-обработчик, если что, подрежет в нужном месте ;-)

   
 
 автор: 12345   (25.01.2006 в 20:00)   письмо автору
 
   для: DDK   (25.01.2006 в 18:55)
 

На onkeyup и onchange надо повесить одну и ту же функцию. Тогда сработает и по Paste.

   
 
 автор: DDK   (25.01.2006 в 20:55)   письмо автору
 
   для: 12345   (25.01.2006 в 20:00)
 

по вставке и с одним кейап работает :)

   
 
 автор: 12345   (25.01.2006 в 23:44)   письмо автору
 
   для: DDK   (25.01.2006 в 20:55)
 

> по вставке и с одним кейап работает :)
А при Paste мышью?

> и срабатывают эти события исключительно в осле (IE)
Да быть того не может - пример
<textarea rows=12 onkeyup=alert('up') onchange=alert('change')></textarea>
работает где надо и не надо (FF, IE)

И зацикливать опрос соответственно не надо.

   
 
 автор: DDK   (25.01.2006 в 20:59)   письмо автору
 
   для: DDK   (25.01.2006 в 18:55)
 

UPD.: Мде... и срабатывают эти события исключительно в осле (IE) :( Ладно, придётся прибегнуть к крайним мерам - зациклить функцию на setTimeout с долисекундным промежутком...

   
 
 автор: Киналь   (25.01.2006 в 21:17)   письмо автору
 
   для: DDK   (25.01.2006 в 15:53)
 

А почему не на onBlur? textarea ведь enter'ом не сабмитится (как text, например), т.е. в любом случае фокус с нее надо убрать.

   
 
 автор: DDK   (25.01.2006 в 21:27)   письмо автору
 
   для: Киналь   (25.01.2006 в 21:17)
 

И onblur в опере и мозилле не работает...

   
 
 автор: DDK   (30.01.2006 в 16:01)   письмо автору
 
   для: DDK   (25.01.2006 в 15:53)
 

В догонку: Вот нашёл интересное решение на DHTML:

<script language='JavaScript'>
function ismaxlength(obj){
var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
if (obj.getAttribute && obj.value.length>mlength)
obj.value=obj.value.substring(0,mlength)
}
</script>

<textarea maxlength="10" onkeyup="return ismaxlength(this);"></textarea>


У textarea нет параметра maxlength ? - так почему бы нам его не добавить ?! :) И самое главное - работает во всех браузерах.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования