| imho.ws |
![]() |
|
|
|||||||
|
Сообщения:
Перейти к новому /
Последнее
|
Опции темы |
|
|
# 1 |
|
Guest
Сообщения: n/a
|
Как ограничить максимальное кол-во знаков вводимых в textarea?
Джентельмены, может кто-нить знает как ограничить ввод знаков в textarea. А то мне нельзя б базу заносить больше 255 знаков. А проверять на серваке - это будет слишком напрягать, если сам не знаешь сколько знаков уже ввел
С уважением. |
|
|
# 2 |
|
::VIP::
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417
![]() ![]() ![]() |
на onsubmit формы сделай обработчик. в нем и проверяй.
что-то такое будет: return (!textarea_id.value.length > 10) Код:
<script language="javascript">
function checkTextAreaLength(form) {
if (form.textarea_id.value.length > 10) {
alert("Слишком много ввели!");
return false;
}
return true;
}
</script>
<form onsubmit="checkTextAreaLength(this)">
...
<textarea id=textarea_id></textarea>
...
</form>
onsubmit = "return(checkTextAreaLength(this))"
__________________
Nunc est bibendum |
|
|
|
|
# 3 |
|
Full Member
Регистрация: 31.08.2003
Адрес: где-то между Марсом и Юпитером
Сообщения: 998
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Или можно так:
<html> <textarea onkeydown="javascript:count();" id="test" rows=8 cols=25></textarea> <script> function count() { var str1=""; str1=document.all.test.value; if (str1.length == 255) alert("Превышенно допустимое число символов") } </script> </html>
__________________
Старые игры раздают здесь |
|
|
|
|
# 7 |
|
Member
Регистрация: 27.08.2002
Адрес: Канада
Пол: Male
Сообщения: 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Что-то я лохонулся
Ответил не проверив. onkeydown фигово работает. Если уже набрал 255 символов, то больше ничего сделать нельзя, даже стереть Заменить на onkeypress.А с copy+paste проблемка. Чтоб всё работало идеально, надо не простой скриптик писать. |
|
|
|
|
# 8 |
|
::VIP::
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417
![]() ![]() ![]() |
elishnevsky
на мой взгляд проверка должна быть двойной... на странице (для 99% пользователей), одним из предложеных вариантов и на сайте (понадобится в 1% случаев, даже меньше, для всяких крутых хакеров )иначе любой яваскрипт можно обойти..
__________________
Nunc est bibendum |
|
|
|
|
# 9 |
|
Full Member
Регистрация: 31.08.2003
Адрес: где-то между Марсом и Юпитером
Сообщения: 998
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Вот готовая форма со скриптом -- отображает сколько еще символов можно набрать, выдает сообщение если символов слишком много, режит до заданного размера если сообщение получается больше 255 символов.
Код:
<html>
<body bgcolor="#cccccc" text="#666666"
link="#666666" vlink="#666666" alink="#666666">
<script language="JavaScript">
function ChooseLen()
{
M = window.document.send.text.value.length;
if(M>255){
window.alert("Вы набрали слишком длинное сообщение");
window.document.send.text.value= window.document.send.text.value.substring(0,255);
M = window.document.send.text.value.length;
}
window.document.send.count.value = 255-M;
}
</script>
<form enctype="multipart/form-data" action="send.php" method="POST"
name="send">
<table border="0" align="center">
<tbody><td>
<div align="center">
<font face="Arial, Helvetica, sans-serif">
<br><b>
<font size="-1">Текст сообщения</font></b></font><br>
<textarea rows="8" cols="30" wrap="SOFT" NAME="text"
onfocus="ChooseLen()" onchange="ChooseLen()" onkeyup="ChooseLen()"
onkeydown="ChooseLen()" onkeypress="ChooseLen()"></textarea>
</div> </td><tr><th>
<div align="center"> <font face="Arial, Helvetica, sans-serif">
<font size="-1">Вы можете набрать еще
<input size="4" value="255" name="count" type="text"
onfocus="window.document.send.text.focus();"> символов
</font></font> </div>
</th></tr><tr><th> <br>
<input type="submit" name="Start" value="Отправить сообщение"></form>
<br> </th> </tr>
</tbody></table>
</body>
</html>
__________________
Старые игры раздают здесь Последний раз редактировалось CEO; 29.07.2004 в 13:57. |
|
|
|
|
# 10 |
|
Member
Регистрация: 27.08.2002
Адрес: Канада
Пол: Male
Сообщения: 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Уф. Есть решение. Правда наверное только для IE. Поддерживает Copy/Paste.
Создаётся след. HTC (HTML Component) файл: maxlength.htc Код:
<PUBLIC:COMPONENT id="bhvMaxlength" urn="maf:Maxlength">
<PUBLIC:PROPERTY name="maxLength" />
<PUBLIC:ATTACH event="onkeypress" handler="doKeypress" />
<PUBLIC:ATTACH event="onbeforepaste" handler="doBeforePaste" />
<PUBLIC:ATTACH event="onpaste" handler="doPaste" />
<SCRIPT language="JScript">
// Keep user from entering more than maxLength characters
function doKeypress(){
if(maxLength && value.length > maxLength-1){
event.returnValue = false;
maxLength = parseInt(maxLength);
}
}
// Cancel default behavior
function doBeforePaste(){
if(maxLength)
event.returnValue = false;
}
// Cancel default behavior and create a new paste routine
function doPaste(){
if(maxLength){
event.returnValue = false;
maxLength = parseInt(maxLength);
var oTR = element.document.selection.createRange();
var iInsertLength = maxLength - value.length + oTR.text.length;
var sData = window.clipboardData.getData("Text").substr(0,iInsertLength);
oTR.text = sData;
}
}
</SCRIPT>
</PUBLIC:COMPONENT>
Код:
<textarea maxlength="255" style="behavior: url(maxlength.htc)"></textarea>
Последний раз редактировалось aceofext; 29.07.2004 в 06:22. |
|
|
|
|
# 12 |
|
Full Member
Регистрация: 31.08.2003
Адрес: где-то между Марсом и Юпитером
Сообщения: 998
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
elishnevsky:Класс! Тот код, что я предложил тоже поддерживает Copy/Paste, но твой вариант куда как интереснее
. В IE5 все прекрасно работает, но в Mozilla 1.6 такой скрипт не пашет к сожалению.
__________________
Старые игры раздают здесь |
|
|
|
|
# 14 | |
|
Guest
Сообщения: n/a
|
Цитата:
вот как НАДО! кушайте на здоровье ;-) Код:
<textarea onkeypress="if(this.value.length>255){this.value=this.value.substr(0,255)};"></textarea>
добавлено через 2 минуты блин ФИГАСЕ! только щяс увидел дату!!)))))))) мягко говоря ужосНах!)) это ж пять лет то прошло!)))))))) а я тут за минуту слепил)) но всёравно кому пригодится может! а то пишут тонны скриптов.. а толку?!
|
|