Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 25 Май, 2012, 06:55:54

Страниц: [1]
Печать
Автор Тема: Количество строк в textarea  (Прочитано 2525 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Timur    ↓ 
09 Март, 2008, 10:54:52
НЕ ХУЕТА! ХУЕТА!

NullPointerException
Группа: в ухо

Карма: 56
Сообщений: 1009
Сила слова: 5.55

Как посчитать? Т.е. получить не количество не переносов (\n), не значение атрибута rows, а именно количество строк?
У меня пока единственная идея запихнуть большой текст в поле и посчитать сколько в среднем символов приходится на строку. Вариант с моноширинным шрифтом тоже не интересен. Пробовал делить длинну строки в texarea на cols, получается чушь...
« Последнее редактирование: 09 Март, 2008, 11:00:42 от Timur » Записан
vasa_c    ↓ 
09 Март, 2008, 02:10:07 , спустя 3 часа 15 минут 15 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

А разве количество переносов не определяет количество строк?
И вообще зачем оно?
Записан

KENDO    ↓ 
09 Март, 2008, 03:01:49 , спустя 51 минуту 42 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 10
Сообщений: 444
Сила слова: 2.25

Тимур, тебе надо посчитать сколько строк влезет в textarea что ли?
Записан
Timur    ↓ 
09 Март, 2008, 03:34:19 , спустя 32 минуты 30 секунд
НЕ ХУЕТА! ХУЕТА!

NullPointerException
Группа: в ухо

Карма: 56
Сообщений: 1009
Сила слова: 5.55

вот например:
 
в браузере видим что строк  - 10, но в коде - только 3 переноса:
HTML
<textarea id="txt" cols="15" rows="15">bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla</textarea>
<script type="text/javascript">
alert("Переносов: " + document.getElementById("txt").value.split("\n").length);
</script>

для чего нужно: на каком-то сайте (уже не помню, к сожаленью) видел такую фишку - поле ввода увеличивается по мере набора текста, никакой полосы прокрутки не появляется. Показалось очень удобным, захотелось реализовать.
 
Записан
AlexB    ↓ 
09 Март, 2008, 03:58:55 , спустя 24 минуты 36 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 89
Сообщений: 3425
Сила слова: 2.6

Может надо не строки считать, а отслеживать появление скрола, и как только он возникает увеличивать высоту?
Записан

vasa_c    ↓ 
09 Март, 2008, 06:45:36 , спустя 2 часа 46 минут 41 секунду
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

А если писать неразрывно, то в FF появится горизонтальный скролл и переноситься на другую строку не будет. Так что тут нюансов полно.
Записан

Timur    ↓ 
09 Март, 2008, 08:04:13 , спустя 1 час 18 минут 37 секунд
НЕ ХУЕТА! ХУЕТА!

NullPointerException
Группа: в ухо

Карма: 56
Сообщений: 1009
Сила слова: 5.55

А как отследить появление сколла? Пробовал химичить со свойством scrollTop, но как-то криво работает...
HTML
<textarea id="txt"></textarea>
<script type="text/javascript">
document.getElementById("txt").onkeypress = function ()
{    
    if (this.scrollTop > 30) {
        this.style.height = this.scrollTop * 2 + "px";
    }    
}
</script>
« Последнее редактирование: 10 Март, 2008, 12:02:06 от Timur » Записан
adw0rd    ↓ 
09 Март, 2008, 10:45:23 , спустя 2 часа 41 минуту 10 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17629
Сила слова: 1.67

http://www.ajaxrussia.com/archives/resizeable-textarea-resizing
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
Timur    ↓ 
10 Март, 2008, 12:00:52 , спустя 1 час 15 минут 29 секунд
НЕ ХУЕТА! ХУЕТА!

NullPointerException
Группа: в ухо

Карма: 56
Сообщений: 1009
Сила слова: 5.55

спасибо, но
Для работы скрипта нужны Prototype и Script.aculo.us.
как-то обломно для одной небольшой фигни :)
 
ладно, пофигу, вопрос был чисто ради интереса.
Записан
adw0rd    ↓ 
10 Март, 2008, 12:20:15 , спустя 19 минут 23 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17629
Сила слова: 1.67

Timur, я просто юзаю прототайп и скрипт.акуло.юс повсеместно, поэтому для меня это более чем удобно :)
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
Страниц: [1]
Печать
 

Перейти в: