Javascript.RU

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

Событие Input и программное изменение value
Приветствую!
Подскажите, пожалуйста, событие oninput (у <input>) возникает только при ручном вводе (с клавиатуры, copy->paste) или может возникнуть при задании value программно? У меня в FireFox не получается вызвать это событие программным изменением value. Как должно быть и есть ли разница в реализации события oninput в разных браузерах в рамках первого вопроса?
Заранее благодарю за ответ.

Последний раз редактировалось fedushok, 18.09.2017 в 20:36.
Ответить с цитированием
  #2 (permalink)  
Старый 18.09.2017, 20:50
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

Сообщение от fedushok
У меня в FireFox не получается вызвать это событие программным изменением value. Как должно быть и есть ли разница в реализации события oninput в разных браузерах в рамках первого вопроса?
Можно искусственно вызвать событие input через конструктор Event. Изменение атрибута не вызывает событие у дом элемента.
Ответить с цитированием
  #3 (permalink)  
Старый 18.09.2017, 20:58
Аспирант
Отправить личное сообщение для fedushok Посмотреть профиль Найти все сообщения от fedushok
 
Регистрация: 18.09.2017
Сообщений: 45

Благодарю. В общем так. Изменение атрибута не должно вызывать событие вне зависимости от браузера.
Ответить с цитированием
  #4 (permalink)  
Старый 18.09.2017, 21:34
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Но вы если вам нужно смело можете прикрутить вызов функции после изменения value. и не заморачиваться с событием.
вот пример:

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
	<input type="text">
	<script>

		var inp = document.querySelector('input')
		inp.oninput=func;

		function func(){
			alert(inp.value);
		}

		setTimeout(function(){
			inp.value=555;
			func();
		},5000);

	</script>
</body>
</html>


есть фунция которая выводит алертом value инпута.
а ниже мы "программно" меняем value и запускаем функцию.
Ответить с цитированием
  #5 (permalink)  
Старый 19.09.2017, 18:31
Аспирант
Отправить личное сообщение для fedushok Посмотреть профиль Найти все сообщения от fedushok
 
Регистрация: 18.09.2017
Сообщений: 45

Согласен. Вызов события в таком случае будет несколько сложнее, чем просто использование функции предназначенной для обработки события.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает событие change на поле input rybachok91 jQuery 28 09.09.2017 07:29
Событие на input radio redwert Элементы интерфейса 3 23.09.2014 09:45
Событие input и IE10 kobezzza Internet Explorer 2 21.03.2013 19:02
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27
Изменение множества элементов Input по определённом призна Лавсановые Волокна Элементы интерфейса 1 24.12.2010 10:37