@moskwin68

Как отловить изменение в input?

Имеется input
<input type='text' name='fname' id='headline-input' onkeyup="writeHeadline(this.value, 'headline')" oninput="writeHeadline(this.value, 'headline')" onchange="writeHeadline(this.value, 'headline')" placeholder="Напишите заголовок" data-emoji-picker="true">

Его изменения обрабатываются и отображаются в #headline
<div id="main">
	<div id="wrapper">
		<p id="headline" >Заголовок статьи</p>
		<p id="description">Описание статьи</p>
	</div>
</div>

Код функции:
function writeHeadline (text, id) {
	document.getElementById(id).innerHTML = text;
}

Подключил vanilla-emoji-picker-master который при присвоении input'у data-emoji-picker="true" добавляет выпадающий блок с emoji и при выборе смайла добавляет его в input, но при этом не срабатывает функция writeHeadline. Как это отловить?
5cb060c0506fd083564890.png
  • Вопрос задан
  • 173 просмотра
Решения вопроса 1
@moskwin68 Автор вопроса
Выяснилось, что после клика по смайлику фокус переходит на связанное поле и поэтому нужно writeHeadline выполнять ещё onfocus)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
filgaponenko
@filgaponenko
frontend developer
onchange="writeHeadline(this.value, 'headline')
Ответ написан
leni_m
@leni_m
ЧупаКобрус
скорее всего vanilla-emoji-picker-master отбрасывает стандартное поведение инпута с помощью event.preventDefault(); попробуйте повесить обработчики событий через js, а не через html атрибуты.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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