Подсчёт количества символов в textarea

iSlayter

Новичок
Подсчёт количества символов в textarea

<html>
<head>
<title>length</title>
</head>
<body>
<textarea id="text" name="textus">abcd</textarea>
</body>
</html>
PHP:
alert(document.getElementById('text').innerHTML.length); // 4
Пишем что-либо ещё в форму, и опять:
PHP:
alert(document.getElementById('text').innerHTML.length); // 4
Почему возвращается количество символов исходного содержимого поля, а не введённого пользователем?

Как вернуть количество символов введённых пользователем?

Считается ли перенос строки символом?

Так же интересно, есть ли аналог ф-ии php trim() в js?

-~{}~ 10.08.08 21:24:

Правильный ответ:
PHP:
alert(document.getElementById('text').value.length);
Перевод строки считается символом (что логично).
 

FB3

Новичок
innerHTML берет инфу из кода страницы, а не из DOM в браузере. Поэтому там всегда статичное значение будет.
 

voodoo

Новичок
Re: Подсчёт количества символов в textarea

Перевод строки считается символом (что логично).
логичного там мало.
в ИЕ и Опера - два символа (13 10)
в ФФ - один (10),
в сафари вообще жестко глючит - если что-то напечатано, то перевод будет два символа (10 10), если потом еще что-то дальше писать, то новая буква заменяет последнюю 10-у и перевод превращается в один символ. Если эту букву удалить, то перевод так и останется одной 10-кой
 

dimagolov

Новичок
вы забыли сказать, что переводы строки еще и сама textarea может вставлять (в зависимости от настроек wrap)
 

FB3

Новичок
это как-то странно, ведь атрибута value у textarea нет
Не надо путать HTML и DOM. Это немного разные вещи.

вы забыли сказать, что переводы строки еще и сама textarea может вставлять (в зависимости от настроек wrap)
Ну переноситься текст будет на новую строку на границе разрыва слов при превышении длины textarea, только перенос строки в виде управляющего символа вставится только тогда, когда пользователь Enter'ом насильно перенесет текст.
 

iSlayter

Новичок
Код:
function $$(id) {
   return document.getElementById(id);
}

function symbolChecker(id, counter, maximum) {
    content = $$(id).value;
    total   = content.length;
    if (total > maximum) {
        $$(id).value = $$(id).value.substr(0, maximum);
        $$(counter).innerHTML = 0;
    } else {
        $$(counter).innerHTML = maximum - total;
    }
}
<textarea id="description" class="box" style="height: 100px; width: 100%;" maxlength="2000" name="description" onkeyup="symbolChecker('description', 'descriptionSymbolsRemain', 500);" onkeydown="symbolChecker('description', 'descriptionSymbolsRemain', 500);" onchange="symbolChecker('description', 'descriptionSymbolsRemain', 500);"></textarea>

почему в ие вылазиет ошибка "content.length" есть null или не является объектом?

-~{}~ 20.08.08 17:15:

а не, всё работает. закешировался просто...
 
Сверху