Примеры JavaScript - Как получить количество строк в textarea элементе?

ОГЛАВЛЕНИЕ


Как получить количество строк в textarea элементе?

IE4+

function textareaCurLineNum(obj)
{
  var rowHeight = obj.clientHeight/obj.rows;
  var curHeight = obj.createTextRange().boundingHeight;

  return parseInt(curHeight/rowHeight)+(obj.value!=''?1:0);
}

Обратите внимание на то, как ведется подсчет строк:

  • если текстовое поле пусто, то функция вернет 0 (хотя курсор и мигает в первой строке), ибо строк реально нет;
  • если вы нажали "Enter" и курсор переместился в новую строку, то это не значит что, появилась новая строка. Вот когда вы введете в этой строке что-то, то строка действительно появится, и будет учитываться при подсчете.

Пояснения: clientHeight возвращает высоту элемента textarea без учета всех отступов, границ, полос прокрутки;

boundingHeight возвращает размер в пикселах воображаемого пространства, занятого объектом TextRange (в нашем случае данный объект содержит весь текст и соответственно возвращает высоту занимаемую текстом в textarea элементе).