@klekovkinandrey

Как на js правильно прописать?

Помогите правильно сделать

есть input с дефолтным значением и 2 кнопки +-

<div class="stepper">
                  
                  <input id="product-quantity" type="text" name="quantity" value="500" data-minimum="500" class="form-control"/>
                  <input id="product-id" type="hidden" name="product_id" value="{{ product_id }}" />
                  <span>
                  <i class="fa fa-angle-up"></i>
                  <i class="fa fa-angle-down"></i>
                </span>
                </div>


по нажатию умножает и делит на 2
таким скриптом
function journal_enable_stepper() {
	$('.stepper').each(function () {
		var $this = $(this);
		if ($this.data('_isEnabled')) {
			return;
		}
		$this.data('_isEnabled', true);

		var $input = $this.find('input[name^="quantity"]');
		var value = $input.val();
		var minimum = parseInt($input.data('minimum')) || 1;
		$this.find('.fa-angle-up').on('click', function () {
			$input.val(parseInt($input.val()) * 2);
			$input.trigger('change');
		});
		$this.find('.fa-angle-down').on('click', function () {
			if (parseInt($input.val()) > minimum) {
				$input.val(parseInt($input.val()) / 2);
				$input.trigger('change');
			}
		});
}


Значение по дефолту задается в админке, сейчас допустим оно 500, это 500штук в 1 упаковке

Сейчас если нажать на +, умножит на 2, то есть добавит 500(еще одну упаковку) = 1000, это ок
но если нажать еще раз на +, то уже будет 2000, т.к умножит уже 1000 на 2
Это не то пально
Нужно что бы множилось только на дефолтное значение, а именно на 500 (оно может быть и другое, которое задам)

Как это сделать подскажите?
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ответы на вопрос 1
NikFaraday
@NikFaraday
Student full-stack Developer
function journal_enable_stepper() {
  $('.stepper').each(function () {
    var $this = $(this);
    if ($this.data('_isEnabled')) {
      return;
    }
    $this.data('_isEnabled', true);

    var $input = $this.find('input[name^="quantity"]');
    var value = $input.val();
    var minimum = parseInt($input.data('minimum')) || 1;
    $this.find('.fa-angle-up').on('click', function () {
      $input.val(parseInt($input.val()) + 500);
      $input.trigger('change');
    });
    $this.find('.fa-angle-down').on('click', function () {
      if (parseInt($input.val()) > minimum) {
        $input.val(parseInt($input.val()) - 500);
        $input.trigger('change');
      }
    });
}
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы