Получить количество символов в текстовом поле, включая символы новой строки

Я тестировал этот код в Chrome, и, похоже, ошибка связана с новыми символами. Я достигаю maxlength, прежде чем на самом деле буду использовать все символы.

var ta = document.getElementById('myText');

document.getElementById('max').innerHTML = ta.maxLength;

setInterval(function() {
    document.getElementById('count').innerHTML = ta.value.length;
}, 250);
<textarea id="myText" maxlength="200" style="width:70%;height:130px">
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum has been the industry standard dummy text ever since the 1500s
Type more words here...
</textarea>

<div>
    Char Count <span id="count">0</span>/<span id="max">0</span>
</div>

Ответ 1

Кажется, это ошибка WebKit (рассмотрите filing it), относящуюся к обработке пары CR/LF как два символа вместо одного. Так как это обычно некритично, если, скажем, допустимо 197 символов вместо 200, это прекрасно, чтобы игнорировать это.

Но если вы хотите, вы можете попытаться непрерывно сохранять позицию каретки, заменить все \r\n на \n и восстановить позицию каретки в textarea во время ввода пользователем.