Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.08.2013, 20:28
Интересующийся
Отправить личное сообщение для george115 Посмотреть профиль Найти все сообщения от george115
 
Регистрация: 19.07.2013
Сообщений: 17

В текстареа нужно подсчитать количество строк
В текстареа нужно подсчитать количество строк.
Код
finalcode = code.value; //code получает текстареа
var lines = finalcode.split('\n').length;
работает для подсчетов переходов а не строк
Ответить с цитированием
  #2 (permalink)  
Старый 31.08.2013, 23:51
Аватар для rekzi
Аспирант
Отправить личное сообщение для rekzi Посмотреть профиль Найти все сообщения от rekzi
 
Регистрация: 28.08.2013
Сообщений: 78

Есть варианты в сети, но не универсальные (с багами). Мне кажется нужно создавать отдельный div c шириной равной textarea и высотой определяемой содержимым. Вычислять количество строк через высоты строк и блока div, предварительно настроив css (можно наверно и без этого). А блок выводить за пределами видимой страницы. А можно идти по каждой букве в textarea окружая ее каким-то тэгом и определять Y положения этого тэга. Каждый скачок Y и будет определять новую строку.
Ответить с цитированием
  #3 (permalink)  
Старый 01.09.2013, 02:19
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Можно использовать getClientRects.

набросок: http://jsfiddle.net/wCyJt/

его, конечно, надо допиливать. в частности, для спана выставить правильный фонт (оный получить от текстареа так )
Ответить с цитированием
  #4 (permalink)  
Старый 01.09.2013, 11:31
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от george115
В текстареа нужно подсчитать количество строк.
Код
finalcode = code.value; //code получает текстареа
var lines = finalcode.split('\n').length;
работает для подсчетов переходов а не строк
каких строк?
если есть переход появляется новая строка
или ты хочешь учитывать только строки, в которых есть хотя бы один символ?
Ответить с цитированием
  #5 (permalink)  
Старый 02.09.2013, 12:40
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Условиями задачи позволяется выставить моноширинный шрифт для текстареа?
Ответить с цитированием
  #6 (permalink)  
Старый 02.09.2013, 14:13
Интересующийся
Отправить личное сообщение для george115 Посмотреть профиль Найти все сообщения от george115
 
Регистрация: 19.07.2013
Сообщений: 17

спасибо. но печатаю много символов, дальше пишет один
Ответить с цитированием
  #7 (permalink)  
Старый 02.09.2013, 14:14
Интересующийся
Отправить личное сообщение для george115 Посмотреть профиль Найти все сообщения от george115
 
Регистрация: 19.07.2013
Сообщений: 17

но мне еще нужно учитовать когда строка появляеться после написания длиной строки, и делаеться переход автоматически
Ответить с цитированием
  #8 (permalink)  
Старый 02.09.2013, 14:15
Интересующийся
Отправить личное сообщение для george115 Посмотреть профиль Найти все сообщения от george115
 
Регистрация: 19.07.2013
Сообщений: 17

не имеет значения какой шрифт)
Ответить с цитированием
  #9 (permalink)  
Старый 02.09.2013, 15:15
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от george115 Посмотреть сообщение
не имеет значения какой шрифт)
Выставьте моноширинный шрифт, посчитайте сколько символов помещается на строке (N) и после .split('\n') элементы полученного массива, которые длиннее N, делите на слова и группируете по строкам.
На пальцах:
Допустим, N = 10
"В этом поле содержится множество букв
кроме
того
цифры тоже есть"

Получаем два длинных абзаца, которые нужно обработать, и два коротких.
В первом, получаем группировку по строкам "В этом ", "поле ", "содержится", "множество ", "букв" - итого 5 строк.
В последнем абзаце получим еще две строки.
Всего получилось 5 + 1 + 1 + 2 = 9 строк.
Ответить с цитированием
  #10 (permalink)  
Старый 02.09.2013, 15:38
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Чуть допилил свой вариант, а то Хром неадекватно считал переносы

http://jsfiddle.net/DN6R7/
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как подсчитать количество чекбоксов ? mazaxaka jQuery 2 07.08.2012 18:02
Ext.grid.Panel - получить количество записай (строк) ??? potkin ExtJS 6 14.04.2012 18:19
как посчитать количество строк niZE Общие вопросы Javascript 19 20.12.2011 13:25
Подсчитать кол-во строк в таблице? bobroff jQuery 3 04.12.2009 12:29