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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кол-во оставшихся символов 
:(
    Опции темы
Syltan
Дата 22.4.2010, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Возникла проблемма. Если нажать и не отпускать клавишу мыши именно в браузере Опера, тогда счётчик не будет уменьшатся, как исправить?
И последнее, как сделать, чтоб нельзя было ввести 26 символ, я имею ввиду когда нажимаешь 26 символ, он появляется и резко убирается, как сделать чтоб 26 нельяз было вообщее ввести? 

Код

<HTML>
<head>
<script type="text/javascript">
 
function f() {
var text = document.getElementById('t');
var content = text.value;
var dlina = content.length;
if(dlina > 25)
     text.value = content.substr(0,25);
var poyasn = document.getElementById('d');
var ostalos = 25 - dlina;
if(ostalos < 0 )
 ostalos = 0;
d.innerHTML = 'Осталось символов ' + ostalos;
 
 
}
 
</script>
</head>
<body>
<p id= 'd'>Осталось символов</p>
<FORM name='ddd'>
<textarea onclick='f()' onkeyup='f()' onKeyDown='f()'  id = 't'></textarea>
</form>
</body>
</HTML>
 
 

PM MAIL   Вверх
Amphiluke
Дата 22.4.2010, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Цитата(Syltan @  23.4.2010,  00:22 Найти цитируемый пост)
Если нажать и не отпускать клавишу мыши именно в браузере Опера, тогда счётчик не будет уменьшатся, как исправить?

Цитата(Syltan @  23.4.2010,  00:22 Найти цитируемый пост)
onclick='f()' onkeyup='f()' onKeyDown='f()'

onkeypress не хватает для полного счастья...  smile 


Цитата(Syltan @  23.4.2010,  00:22 Найти цитируемый пост)
как сделать чтоб 26 нельяз было вообщее ввести? 

Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
    <p id="d">Осталось символов</p>
    <form action="#" name="ddd">
        <textarea cols="30" rows="3" name="t" id="t"></textarea>
    </form>
    <script type="text/javascript">
        var tarea = document.getElementById("t");

        function f(evnt) {
            var textLen = tarea.value.length;
            var e = (evnt) ? evnt : event;
            if (textLen >= 5) {
                if (e.preventDefault) {
                    e.preventDefault();
                } else {
                    e.returnValue = false;
                }
            }
            document.getElementById("d").firstChild.nodeValue = "Осталось символов " + (5 - textLen).toString();
        }

        if (tarea.addEventListener) {
            tarea.addEventListener("keydown", f, false);
            tarea.addEventListener("keyup", f, false);
            tarea.addEventListener("keypress", f, false);
        } else {
            tarea.attachEvent("onkeydown", f);
            tarea.attachEvent("onkeypu", f);
            tarea.attachEvent("onkeypress", f);
        }
    </script>
</body>
</html>


Добавлено через 1 минуту и 57 секунд
Ну, только исправить 5 на 25. Забыл.
PM   Вверх
ksnk
Дата 22.4.2010, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Amphiluke, забавный эффект  smile редактировать длинную строку (25 символов) клавишами тоже уже нельзя...  
и от Cut&paste не особенно помогает...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Amphiluke
Дата 22.4.2010, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



ksnk,  smile 

Исправляю.
Код

function f(evnt) {
    var textLen = tarea.value.length;
    var e = (evnt) ? evnt : event;
    if ((e.keyCode < 0x1F) || (e.keyCode > 0x22 && e.keyCode < 0x29) || e.keyCode == 0x2E) return;
    if (textLen >= 5) {
        if (e.preventDefault) {
            e.preventDefault();
        } else {
            e.returnValue = false;
        }
    }
    document.getElementById("d").firstChild.nodeValue = "Осталось символов " + (5 - textLen).toString();
}



Цитата(ksnk @  23.4.2010,  02:44 Найти цитируемый пост)
Cut&paste не особенно помогает...

Увы. Остается поставить таймер, который будет всякий раз сканировать textarea и удалять лишнее при необходимости. А какие Ваши предложения?  smile 
PM   Вверх
ksnk
Дата 22.4.2010, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Amphiluke, cut&paste это общая беда. Событие onPaste официально имеется только в IE. Во всех остальных броузерах, гарантировать не берусь, но вроде в FF все еще нет. 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




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


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

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