Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.10.2019, 15:48
Новичок на форуме
Отправить личное сообщение для dmitry.sh18 Посмотреть профиль Найти все сообщения от dmitry.sh18
 
Регистрация: 14.10.2019
Сообщений: 6

Отслеживание события при добавлении значения в поле скриптом
Добрый день. Есть 3 input поля. В первое поле вручную вводятся данные и при событии onchange запускается скрипт, который по формуле обрабатывает данные из первого поля и помещает результат во второе поле.

Есть также третье поле в которое нужно подставить результаты из второго поля и обработать с помощью формулы. Но проблема в том, что событие onchange на втором поле не срабатывает, если значение добавляется с помощью скрипта (если вводить значение вручную, то скрипт отрабатывает). Как можно это исправить?
Ответить с цитированием
  #2 (permalink)  
Старый 14.10.2019, 16:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

dmitry.sh18,
зачем отслеживать ввод во второе поле, если у вас уже есть привязка к первому, скрипт который вывел данные во второе поле, может вывести и в третье?
Ответить с цитированием
  #3 (permalink)  
Старый 14.10.2019, 16:52
Новичок на форуме
Отправить личное сообщение для dmitry.sh18 Посмотреть профиль Найти все сообщения от dmitry.sh18
 
Регистрация: 14.10.2019
Сообщений: 6

не совсем, например, пользователь вводит в поле 1 значение 5, во второе поле должно подставиться значение "поле 1 * 10", т.е. во второе поле мы должны получить число 50, а в третье поле мы должны получить "поле 2 * 10", т.е. 500. Но когда скрипт вводит в поле 2 результаты расчетов, поле 3 его не видит.
Ответить с цитированием
  #4 (permalink)  
Старый 14.10.2019, 17:19
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от dmitry.sh18
не совсем
<input id="a1" />
<input id="a2" readonly="" />
<input id="a3" readonly="" />

<script>
document.getElementById('a1').addEventListener('input', function() {
    this.value = this.value.replace(/\D/,'');
    document.getElementById('a2').value = this.value * 10;
    document.getElementById('a3').value = this.value * 100;    
});
</script>


И что тут не совсем?

Последний раз редактировалось laimas, 14.10.2019 в 17:21.
Ответить с цитированием
  #5 (permalink)  
Старый 14.10.2019, 17:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Сообщение от dmitry.sh18
пользователь вводит в поле 1 значение 5,
вы что-то не договариваите ...
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>

</head>

<body>
<input type="text">
<input type="text">
<input type="text">
<script>
	var inp =  document.querySelectorAll('input');
 	inp[0].addEventListener('input', function() {
	inp[1].value = this.value * 10;
    inp[2].value = this.value * 10 * 10;

}, false)
</script>

</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 14.10.2019, 17:36
Новичок на форуме
Отправить личное сообщение для dmitry.sh18 Посмотреть профиль Найти все сообщения от dmitry.sh18
 
Регистрация: 14.10.2019
Сообщений: 6

Сообщение от laimas Посмотреть сообщение
<input id="a1" />
<input id="a2" readonly="" />
<input id="a3" readonly="" />

<script>
document.getElementById('a1').addEventListener('input', function() {
    this.value = this.value.replace(/\D/,'');
    document.getElementById('a2').value = this.value * 10;
    document.getElementById('a3').value = this.value * 100;    
});
</script>


И что тут не совсем?
Спасибо, то что нужно!
Ответить с цитированием
  #7 (permalink)  
Старый 14.10.2019, 17:36
Новичок на форуме
Отправить личное сообщение для dmitry.sh18 Посмотреть профиль Найти все сообщения от dmitry.sh18
 
Регистрация: 14.10.2019
Сообщений: 6

Сообщение от рони Посмотреть сообщение
вы что-то не договариваите ...
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>

</head>

<body>
<input type="text">
<input type="text">
<input type="text">
<script>
	var inp =  document.querySelectorAll('input');
 	inp[0].addEventListener('input', function() {
	inp[1].value = this.value * 10;
    inp[2].value = this.value * 10 * 10;

}, false)
</script>

</body>
</html>
Спасибо за ответ, именно это и было нужно!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задать значения вьюмодели при создании компонента. XAPuTOH ExtJS 6 25.03.2016 12:57
Как сделать, чтобы при вводе числа в поле добавлялись разделители групп разрядов? Hurray Элементы интерфейса 13 18.02.2015 14:07
Смена картинки при наведении курсора на поле. ExtrAngel Общие вопросы Javascript 1 27.11.2013 23:11
Скролл окна при добавлении контента "сверху"" yaneblog Events/DOM/Window 0 22.01.2010 23:00
Выполнение скрипта при нажатии Entet в текстовм поле Vlasssov Общие вопросы Javascript 4 23.08.2009 23:31