Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Мгновенное изменение значения инпута в зависимости от значения в другом инпуте

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
surrealistic pillow
Отправлено: 04 Марта, 2015 - 08:48:44
Post Id


Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Март 2014  


Помог: 0 раз(а)




Задача такая - два инпута, один отвечает за количество товара, второй соответственно - за полный прайс (итого), значение в нем должно рассчитываться следующим образом: цена товара*количество товаров.
Нужно чтобы при изменении посредством ручного ввода значения в первом инпуте, мгновенно менялось (рассчитывалось по указанной формуле) значение во втором.
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <input name="quantity" type="number" min="1" max='3' value="1"/> шт. <br>
  3. <input name="totalprice" type="text" readonly value="1000"/> руб.
  4.  

Использовал jquery:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('input[name=quantity]').on('change',function(){
  3. var q = $('input[name=quantity]').val();
  4. var total = q*1000;
  5. $('input[name=totalprice]').attr('value', total);
  6. });
  7.  

этот код работает, но не совсем так, как надо.
Если нажать на стрелочки вверх-вниз в инпуте с количеством, то значение во втором инпуте (итого) меняется, как надо, однако если в инпуте с количеством ввести значение вручную, или копировать-вставить, то значение во втором инпуте остается прежним, пока курсор находится в инпуте с количеством (говоря по-другому, пока инпут находится в фокусе).
Как реализовать мгновенную смену значения при вводе с клавиатуры?
 
 Top
skiphog
Отправлено: 04 Марта, 2015 - 09:14:45
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Дек. 2014  
Откуда: Киров, Россия


Помог: 11 раз(а)




попробуйте
CODE (javascript):
скопировать код в буфер обмена
  1. $('input[name=quantity]').on('change keyup',function(){...
 
My status
 Top
surrealistic pillow
Отправлено: 04 Марта, 2015 - 09:24:17
Post Id


Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Март 2014  


Помог: 0 раз(а)




skiphog пишет:
попробуйте
CODE (javascript):
скопировать код в буфер обмена
  1. $('input[name=quantity]').on('change keyup',function(){...


Да, спасибо, так работает! Радость
 
 Top
DelphinPRO
Отправлено: 04 Марта, 2015 - 09:57:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




корректнее использовать специально предназначенные для этого события
CODE (javascript):
скопировать код в буфер обмена
  1. .on('input propertychange',function(){...

Данное событие возникает моментально при любом изменении значения поля ввода. В том числе копи-паста и программное изменение.

propertychange можно убрать, если не требуется поддержка IE8

(Отредактировано автором: 04 Марта, 2015 - 09:59:24)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB