powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Ограничение textarea
12 сообщений из 12, страница 1 из 1
Ограничение textarea
    #34665459
boqtan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как можно ограничить количество вводимых символов на textarea?
Maxlength не работает textarea
...
Рейтинг: 0 / 0
Ограничение textarea
    #34665613
Хрюнь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это сделать достаточно сложно. Проще проверить на максимальную длину перед сохранением.
...
Рейтинг: 0 / 0
Ограничение textarea
    #34665788
Hektor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
textarea (with maxlength, without scrolling)
Данные скрипты позволяют установить для html элемента ограничения по количеству введенных символов и отображаемых строк (блокирование скролинга)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
<!--

function keyupsave()
{
window.document.all.Comments.scrollTop= 10 ;
if (window.document.all.Comments.scrollTop >  0 ) {
window.document.all.Comments.value = MsgSave;
}
MsgSave= window.document.all.Comments.value;
}

function count_change()
{
var MaxLen =  255 ; //Максимальная длина сообщения
var Msg = window.document.all.Comments.value;
var Msglen = Msg.length;
if (Msglen => MaxLen ) {
event.returnValue = false;
}
}

function enablePaste() {
event.returnValue = false;
}

function pastecount_change()
{
var MaxLen =  255 ; //Максимальная длина сообщения
var Msg = window.document.all.Comments.value;
var oTR = window.document.selection.createRange();
var sData = window.clipboardData.getData("Text");
oTR.text = sData;
var Msglen=window.document.all.Comments.value.length;
window.document.all.Comments.scrollTop =  10 ;
if (window.document.all.Comments.scrollTop >  0 ) {
event.returnValue = false;
window.document.all.Comments.value=MsgSave;
}
if (Msglen > MaxLen ) {
event.returnValue = false;
window.document.all.Comments.value = Msg.substring( 0 ,MaxLen);
}
}

function scrollcount_change()
{
window.document.all.Comments.value = MsgSave;
}

//-->

</SCRIPT>
</HEAD>
<body>
<form id="Form1" method="post" encType="multipart/form-data" runat="server">

<TEXTAREA id="Comments" name="Comments" onscroll="scrollcount_change();" onkeyup="keyupsave();" onbeforepaste="enablePaste();"
onkeypress="count_change();" onpaste="pastecount_change();" rows="16" cols="25"></TEXTAREA>

</form>
<!--

<SCRIPT language="JavaScript"> //Startup script
var MsgSave= window.document.all.Comments.value;
</SCRIPT>

//-->

</body>
</HTML>

В данном примере максимальное количество вводимых символов ограничено 255, а максимальное количество строк - 16. ID="Comments" взято для примера, и соответственно во всех скриптах должна быть заменена на ID вашего контрола.
Строка скрипта внизу страницы должна быть обязательно включена в стартовый скрипт, если он формируется на сервере, а не задается явно на странице, как в данном примере.


________________________________________________________
________________________________________________________
...
Рейтинг: 0 / 0
Ограничение textarea
    #34665819
boqtan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоисть набраное может привышать количество а отправляется не более 255?
...
Рейтинг: 0 / 0
Ограничение textarea
    #34665839
Фотография Хрюхрюшкин.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boqtanТоисть набраное может привышать количество а отправляется не более 255?
1) Перед отправкой формы можно проверить количество символом и попросить убрать лишние (показав, сколько лишнего введено).
2) Молча отправить только требуемое количество.
3) Предупредить, что количество превышает заданное и дать выбор.
Всё это хорошо работает только если превышение этого количества символов должно сигнализировать об ошибке.

А что тут написал некто Hektor для проверки в рантайме?
Он написал полную чушь (нагромождение безграмотных кусков кода с использованием window.document.all, за который нужно плющить яйца молотком), которая не работает даже под IE (не компилируется; не знаю, откуда он скопировал этот отстой).
Причем в Firefox'е это не будет работать в принципе, потому что там нет обработчика событий onPast.
И использование event.returnValue тоже не проканает.
...
Рейтинг: 0 / 0
Ограничение textarea
    #34665907
Hektor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласен. Код получил от товарищей, а те вот от куда.

Исправляюсь.
Проверил. работает.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<body >
<script language="javascript">
var MaxLength =  160 ;
function DisplayLength(){
  if ( Send_Message.message.value.length > MaxLength ) {
	Send_Message.message.value = Send_Message.message.value.substr(  0 , MaxLength );
  }

  Send_Message.remainchars.value = MaxLength - Send_Message.message.value.length;
}

function CheckLength(){
  event.returnValue = Send_Message.message.value.length < MaxLength || document.selection.type != "None";
}
</script>

<form  name="Send_Message">
	<textarea name="message" rows="5" cols="40" onPropertyChange="DisplayLength();" onKeyPress="DisplayLength();CheckLength();"	onPaste="CheckLength();"></textarea><br>				
	<input type="text" name="remainchars" value="160" size="3" readonly>
	<br>
	символов
</form>
</body>

НАДЕЮСЬ Я РЕАБИЛИТИРОВАН
________________________________________________________
________________________________________________________
...
Рейтинг: 0 / 0
Ограничение textarea
    #34666448
boqtan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код замечательный!
Гораздо лутче чем хотел:)
Спасибо.
...
Рейтинг: 0 / 0
Ограничение textarea
    #34667046
Фотография Хрюхрюшкин.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hektor
НАДЕЮСЬ Я РЕАБИЛИТИРОВАН
________________________________________________________
________________________________________________________
Нет. Повторяю, всё это не работоспособно нигде кроме IE. Значит использовать данный подход нельзя.
...
Рейтинг: 0 / 0
Ограничение textarea
    #34667279
boqtan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я знаю. к томуэе в браузерах бывает выключают javascript. :)
...
Рейтинг: 0 / 0
Ограничение textarea
    #34714729
boqtan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а еще можно fputs задать ограничение на запись:) к примеру fputs($file,"$ljhkjhkjh","160");
:)
...
Рейтинг: 0 / 0
Ограничение textarea
    #34714807
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хрюхрюшкин. Hektor
НАДЕЮСЬ Я РЕАБИЛИТИРОВАН
________________________________________________________
________________________________________________________
Нет. Повторяю, всё это не работоспособно нигде кроме IE. Значит использовать данный подход нельзя.А если заменить строки типа Send_Message.remainchars.value на document.forms("Send_Message")("remainchars").value? Не могу проверить, у меня только ie.
...
Рейтинг: 0 / 0
Ограничение textarea
    #34717754
Анонимус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<html>
<head>
<script language="JavaScript">
<!--
var count=1000;
function load1()
{
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;
}
//-->
</script>
</head>
<body onload=load1()>
<form name="formText">
<textarea name="text1" rows=5 cols=30 onkeyup="text1Change()"></textarea><br>
Ограничение символов:
<input type="text" name="t1" size="4" maxlength="4" disabled="false"><br>
Осталось:
<input type="text" name="t2" size="4" maxlength="4" disabled="false">
</form>
</body>
</html>
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Ограничение textarea
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]