lavezzi1
@lavezzi1

Как ограничить максимальное количество символов для contenteditable="true" через js?

Здравствуйте. Есть
<div contenteditable="true"></div>

Как можно ограничить максимальное количество символов через plain js? В гугле решения не нашел, либо решения баговые типа через ввод работает а через копипаст все равно позволяет больше вставить.
  • Вопрос задан
  • 2342 просмотра
Пригласить эксперта
Ответы на вопрос 2
@napa3um
const MAX_LEN = 5;
const div = document.getElementById('editor');

div.addEventListener('input', event => {
	if(div.innerHTML.length > MAX_LEN)
  	div.innerHTML = div.innerHTML.substr(0, MAX_LEN);
});


Подробнее о событиях ввода: https://learn.javascript.ru/events-change .
Сохранять позицию ввода чуть сложнее, подробности, например, можно посмотреть тут: stackoverflow.com/questions/3972014/get-caret-posi... .
Ответ написан
miraage
@miraage
Старый прогер
1) слушать событие input
2) слушать событие paste. получить вставляемую длину, сложить с текущей, обрезать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы