Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.11.2017, 20:38
Интересующийся
Отправить личное сообщение для Denis_Landar Посмотреть профиль Найти все сообщения от Denis_Landar
 
Регистрация: 10.10.2017
Сообщений: 26

Как отключить возможность переходить у input-a за 0?
Добрый вечер!
Не могу решить, как отключить возможность перехода input-a за ноль, когда посетитель нажимает на минус(-) что бы форма не переходила за отметку нуля!

Сам сайт: (https://polynor.com.ua/order);

Пример кода:

Код минуса и плюса:
$('.minus').click(function () {
		var $input = $(this).parent().find('input');
		var count = parseInt($input.val());
		count = count < 1 ? 1 : count;
		$input.val(count);
		$input.change();
	});
	$('.plus').click(function () {
		var $input = $(this).parent().find('input');
		$input.val(parseInt($input.val()));
		$input.change();
	});


Код самого скрипта формы передачи данных:
const elMinus = document.querySelectorAll('span.minus');
								const elPlus = document.querySelectorAll('span.plus');
								const elTotal = document.querySelector('.order-end-form>input');
								document.querySelector('.order-table').onclick = function(event) {
									if (event.target.className === 'minus') {
        //console.log(event.target);
        //console.log(event.target.nextElementSibling);
        if (event.target.nextElementSibling.value <= 0) {
        	event.target.nextElementSibling.value = 0;
        } else {
        	let val = --event.target.nextElementSibling.value;
        	let price = parseInt(event.target.closest('.number').previousElementSibling.textContent);
        	let sum = val * price;
        	elTotal.value = +elTotal.value - price;
        	console.log(price);
        	console.log(sum);
        	console.log(elTotal.value);
        }
      }
      if (event.target.className === 'plus') {
        //console.log(event.target);
        //console.log(event.target.previousElementSibling);
        let val = ++event.target.previousElementSibling.value;
        let price = parseInt(event.target.closest('.number').previousElementSibling.textContent);
        let sum = val * price;
        elTotal.value = +elTotal.value + price;
        console.log(price);
        console.log(sum);
        console.log(elTotal.value);
      }
    }
Ответить с цитированием
  #2 (permalink)  
Старый 22.11.2017, 21:46
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А где же декремент значения?

var count = parseInt($input.val());
count--;
$input.val(count || 1);
Ответить с цитированием
  #3 (permalink)  
Старый 22.11.2017, 23:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Denis_Landar,
сумму надо формировать обходя все инпуты, только суммируя, без какого либо вычитания !
Ответить с цитированием
  #4 (permalink)  
Старый 23.11.2017, 22:50
Интересующийся
Отправить личное сообщение для Denis_Landar Посмотреть профиль Найти все сообщения от Denis_Landar
 
Регистрация: 10.10.2017
Сообщений: 26

рони,
laimas,
Спасибо!
За ответы, проблема решена!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отключить отправку из input по нажатию enter? CrazzyBerg Элементы интерфейса 7 19.10.2015 15:25
Как отследить событие изменения скрытого input? helgajijka jQuery 9 29.08.2015 23:59
Как сделать обязательным input radio? Anrew Общие вопросы Javascript 11 28.05.2015 00:59
Как вставить текст из куков в input формы? perfect Events/DOM/Window 3 05.03.2014 08:22
Разным элементам input - разное форматирование. Как? eclipse (X)HTML/CSS 1 25.10.2007 13:55