Перейти к содержимому

Фото
- - - - -

textarea maxlength


  • Вы не можете создать новую тему
  • Please log in to reply
20 ответов в этой теме

#1 Cryptoboy

Cryptoboy
  • Пользователь
  • 280 сообщений

Отправлено 24 Январь 2009 - 17:42

Вобщем как все знают у сего тега нет атрибута maxlength

Как можно решить проблему подругому? ( Нужно ограничить количество вводимых символов )
  • 0

#2 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 24 Январь 2009 - 18:15

Slаm, посмотри на одноклассниках там вроде есть ограничение
  • 0

#3 Cryptoboy

Cryptoboy
  • Пользователь
  • 280 сообщений

Отправлено 24 Январь 2009 - 18:35

А я там не зареген :) можешь скинуть код если не влом?
  • 0

#4 ParadoxL

ParadoxL
  • Постоялец
  • 4 756 сообщений
  • Откуда:Edinburg

Отправлено 24 Январь 2009 - 19:40

http://psacake.com/web/js.asp
  • 0
Victoria nulla est, Quam quae confessos animo quoque subjugat hostes ...
Верю в смерть после жизни, любовь после секса и в крем после бритья ...

#5 Cryptoboy

Cryptoboy
  • Пользователь
  • 280 сообщений

Отправлено 24 Январь 2009 - 19:44

да, я тоже умею гуглом пользоваться

это не работает ( запрещает кроме прочих клавишей, также делит и бэкспейс)
  • 0

#6 PyPL

PyPL
  • Пользователь
  • 54 сообщений

Отправлено 24 Январь 2009 - 21:16

Попробуй такой вариант.
Берёшь текст из текстареи , далее этот текст разбиваешь на одиночные символы , запихиваешь их все в массив и считаешь размер массива.

Вот так можно реализовать maxlength.
Один из возможных вариантов.

Updated :
Вот ещё более простой вариант :
Представим что есть textarea с id = txt

Тогда вот такая простая JS фукция поможет :
<script language="javascript">
function checkLength()
{
	var mytxt = document.getElementById('txt').value;
	alert(mytxt.length);
}
</script>

Т.е получаем текст из ареи (свойство value) , а т.к это string , то измеряем его размер (свойство length).

Сообщение изменено: PyPL (24 Январь 2009 - 21:32 )

  • 0

#7 Cryptoboy

Cryptoboy
  • Пользователь
  • 280 сообщений

Отправлено 25 Январь 2009 - 00:24

PyPL, ты не так понял

мне нужно чтобы нельзя было ввести больше чем сколько-то символов.

Сообщение изменено: Slаm (25 Январь 2009 - 00:25 )

  • 0

#8 PyPL

PyPL
  • Пользователь
  • 54 сообщений

Отправлено 25 Январь 2009 - 00:56

Ну вот можно так (почти то что надо) , используй jQuery (jQuery.com)

Есть textarea с id = txt

<script src="jquery-1.3.1.min.js"></script>
<script language="javascript">
function checkMaxLength(elementId, givenValue, maxValue)
{
	if(givenValue >= maxValue)
	{
		alert("Too long!");
		document.getElementById('txt').style.background = "red";
		document.getElementById('txt').focus();
	}
}

$(document).ready(function(){
	$('#txt').change(function() { //Событие change проверяет смену value при потере фокуса на элементе
		checkMaxLength('txt', document.getElementById('txt').value.length, 10);
	});
});
</script>

Обрабатывать код можешь поразному , можешь тихо детектить размер и сам удалять лишние символы с конца.

Сообщение изменено: PyPL (25 Январь 2009 - 00:58 )

  • 0

#9 Cryptoboy

Cryptoboy
  • Пользователь
  • 280 сообщений

Отправлено 25 Январь 2009 - 01:05

PyPL, и что? ловить onchange ивент можно и без jQuery ..

Удалять символы не катит, попробуй, увидишь что будет ..
  • 0

#10 PyPL

PyPL
  • Пользователь
  • 54 сообщений

Отправлено 25 Январь 2009 - 01:37

Тогда читай ТУТ про создание своего аттрибута. Помоему то что надо.
  • 0

#11 ParadoxL

ParadoxL
  • Постоялец
  • 4 756 сообщений
  • Откуда:Edinburg

Отправлено 25 Январь 2009 - 15:10

PyPL, создание своего аттрибута ведет к инвалидности кода.
  • 0
Victoria nulla est, Quam quae confessos animo quoque subjugat hostes ...
Верю в смерть после жизни, любовь после секса и в крем после бритья ...

#12 Cryptoboy

Cryptoboy
  • Пользователь
  • 280 сообщений

Отправлено 25 Январь 2009 - 15:15

PyPL, это тоже не работает

код, который приводит автор, только выводит сообщение пользователю, если ввеедено больше, чем позволено символов

Вобщем, похоже что это сделать нельзя

Сообщение изменено: Slаm (25 Январь 2009 - 15:15 )

  • 0

#13 Vitalts

Vitalts
  • Постоялец
  • 1 842 сообщений

Отправлено 27 Январь 2009 - 16:22

yandex говорит что можно
  • 0

#14 Cryptoboy

Cryptoboy
  • Пользователь
  • 280 сообщений

Отправлено 27 Январь 2009 - 22:10

Можешь показать хоть один работающий вариант? :)
  • 0

#15 PyPL

PyPL
  • Пользователь
  • 54 сообщений

Отправлено 28 Январь 2009 - 01:29

Вот это помоему самый подходящий вариант - http://blog.webmaste.../javascript/83/
  • 0

#16 Cryptoboy

Cryptoboy
  • Пользователь
  • 280 сообщений

Отправлено 28 Январь 2009 - 02:29

Очень криво работает
  • 0

#17 .NET

.NET
  • Постоялец
  • 3 511 сообщений

Отправлено 28 Январь 2009 - 11:18

http://blog.offbeatm...a-Textarea.aspx
  • 0

#18 Cryptoboy

Cryptoboy
  • Пользователь
  • 280 сообщений

Отправлено 29 Январь 2009 - 07:38

Otacon, это уже получше, но тоже кривоватый вариант поэтому не катит ..
( нельзя копировать оттуда когда максимально текста, нельзя выделить кусок текста и начать писать. нельзя вырезать текст и т.д )
  • 0

#19 .NET

.NET
  • Постоялец
  • 3 511 сообщений

Отправлено 29 Январь 2009 - 15:34

Slаm, :D Издержки производства :) Идеального варианта фиг найдешь. По мне, так этот - один из лучших =)
  • 0

#20 - SNEG -

- SNEG -
  • Постоялец
  • 1 290 сообщений
  • Откуда:Мир

Отправлено 19 Март 2009 - 02:34

В теге событие onkeydown или onkeyup сравниваешь длинну текста в обьекте с нужной цифрой и если больше , то return false делаешь. Точно лень писать . Пол года уже в JS не залазил.

типа

<INPUT type=text onkeydown="if ( this.value.text.length>10 ) return false ;"/>

это не точно, как текст достать и длинну высчитать непомню сейчас, но както легко было.

Еще события onkeyup , onpress .

Сообщение изменено: Andrew_Sneg (19 Март 2009 - 02:35 )

  • 0
Нам можно

#21 aassaa

aassaa
  • Пользователь
  • 88 сообщений

Отправлено 07 Апрель 2009 - 01:10

na otvet.mail.ru tam bqlo
  • 0