@twohundrediq

Как определить к какой форме принадлежит input?

Добрый вечер, на странице присутствуют несколько форм, которые отвечают за добавление продукта в корзину.
В этих формах есть поле ввода количества товаров, которое должно отправлять ajax запрос сразу после его изменения.
Выглядит это примерно так
<form id="form-3-<?php echo $product['id']; ?>" action="" method="POST">
      <input class="counter__remove js-counter-remove" type="submit" name="submit" value="-" onclick="removeToCartOne('<? 
             php echo $product['id'] ?>', '200', '3'); return false">
      <input type="hidden" name="productId" value="<?php echo $product['id']; ?>">
      <input type="hidden" name="taste" value="Апельсин">
      <input id="inputValue" class="counter__field inputRequired" type="text" value="<?php echo $quantityTasteThree ?>" data- 
             max="1523" name="amount">
       <div style="display:none">
             <?php echo $product['prise']; ?>
       </div>
       <input class="counter__add js-counter-add" type="submit" name="submit" value="+" onclick="addToCartOne('<?php echo 
           $product['id'] ?>', '200', '3'); return false">
</form>


Js который отвечает за изменение значения поля
$(document).ready(function() {

            var inputValue = '';
            $('.counter__field').change(function() {
                    inputValue = $(this).val();
                    alert(inputValue);
            });

        });


Проблема вот в чем, к примеру в корзине уже присутствует n-е количество данного товара, а человек вводит число меньше или больше данного количества, мне нужно будет сравнить эти числа и разницу добавлять или вычитать из общего количества. Если я в форме сделаю скрытое поле, в которое будет выводиться старое значение, то как мне потом его пулучить, как узнать к какой форме принадлежит измененный input?
  • Вопрос задан
  • 234 просмотра
Пригласить эксперта
Ответы на вопрос 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
Прикрутить бы VueJS, и сделать корзину реактивной: в любой из форм изменили число товара, везде так же изменилось.

Костылинг мог бы быть с глобальным объектом, хранящим актуальную корзину. Любая из форм меняет значениеив нем. Сеттер значения эмитит событие, которе слушают все формы, чтобы обновить свои данные.
Ответ написан
mrhard
@mrhard
web разработчик
$('.counter__field').change(function() {
                    inputValue = $(this).val();
                    alert(inputValue);
                    form = $(this).parents('form'); // Ваша форма
                   alert($(form).attr('id')) // например
            });
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
06 мая 2024, в 12:36
30000 руб./за проект
06 мая 2024, в 12:22
5000 руб./за проект
06 мая 2024, в 12:19
1500 руб./в час