Задать вопрос
@maxpisya

Как ограничить счетчик минимальным значением 1 и максимальным 100?

$(document).ready(function() {
    $('.minus.basket-quantity__btn').click(function() {
      $(this).siblings('.basket-quantity__num').html(+$(this).siblings('.basket-quantity__num').html()-1);
      $(this).parents('.content').find('.price .num').html(+$(this).parents('.content').find('.price .num').html()-2830);
    });
    $('.plus.basket-quantity__btn').click(function() {
      $(this).siblings('.basket-quantity__num').html(+$(this).siblings('.basket-quantity__num').html()+1);
      $(this).parents('.content').find('.price .num').html(+$(this).parents('.content').find('.price .num').html()+2830);
    });
  });
  • Вопрос задан
  • 487 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
$(document).on('click', '.basket-quantity__btn', function() {
  const $this = $(this);
  const step = +$this.hasClass('plus') || -$this.hasClass('minus');
  const val = $this
    .siblings('.basket-quantity__num')
    .text((i, text) => Math.max(1, Math.min(100, +text + step)))
    .text();

  $(this)
    .closest('.content')
    .find('.price .num')
    .html(val * 2830);
});
Ответ написан
Exploding
@Exploding
wtf?
Что вы делаете, люди!!?? Покайтесь!!)))
<input type='number' min='1' max='100'>

А ежели дофига эстет - пожалуйста, с кастомными контролами:
<div class='icon-remove cart-pm'></div>
<input type='number' min='1' max='100' step='1' value='1'>
<div class='icon-add cart-pm'></div>


Но проще даже в onclick-е элемента юзать методы stepUp и stepDown
$(document).on("click", ".cart-pm", function(){
	var input = $(this).siblings("[type='number']");
	if($(this).hasClass("icon-add")) input[0].stepUp();
	else input[0].stepDown();
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
xEpozZ
@xEpozZ
Веб-разработчик
Берите в обработчике клика и проверяйте значение
$(this).siblings('.basket-quantity__num').html()

А вообще, лучше выносить одинаковые куски кода в промежуточные переменные.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы