ФорумПрограммированиеJavaScript → Количество строк в textarea

Количество строк в textarea

  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 8 марта 2008 г. 23:54

    Как посчитать? Т.е. получить не количество не переносов (\n), не значение атрибута rows, а именно количество строк?
    У меня пока единственная идея запихнуть большой текст в поле и посчитать сколько в среднем символов приходится на строку. Вариант с моноширинным шрифтом тоже не интересен. Пробовал делить длинну строки в texarea на cols, получается чушь…
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 9 марта 2008 г. 4:10, спустя 3 часа 15 минут 15 секунд

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

    Сообщения: 446 Репутация: N Группа: Адекваты

    Spritz 9 марта 2008 г. 5:01, спустя 51 минуту 42 секунды

    Тимур, тебе надо посчитать сколько строк влезет в textarea что ли?
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 9 марта 2008 г. 5:34, спустя 32 минуты 30 секунд

    вот например:

    в браузере видим что строк  - 10, но в коде - только 3 переноса:
    <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

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 9 марта 2008 г. 5:58, спустя 24 минуты 36 секунд

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

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 9 марта 2008 г. 8:45, спустя 2 часа 46 минут 41 секунду

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

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 9 марта 2008 г. 10:04, спустя 1 час 18 минут 37 секунд

    А как отследить появление сколла? Пробовал химичить со свойством scrollTop, но как-то криво работает…
    <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>
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 9 марта 2008 г. 12:45, спустя 2 часа 41 минуту 10 секунд

  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 9 марта 2008 г. 14:00, спустя 1 час 15 минут 29 секунд

    спасибо, но
    Для работы скрипта нужны Prototype и Script.aculo.us.

    как-то обломно для одной небольшой фигни :)

    ладно, пофигу, вопрос был чисто ради интереса.
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 9 марта 2008 г. 14:20, спустя 19 минут 23 секунды

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

Пожалуйста, авторизуйтесь, чтобы написать комментарий!