Показать сообщение отдельно
  #4 (permalink)  
Старый 28.12.2016, 20:42
Аспирант
Отправить личное сообщение для MixPetrov Посмотреть профиль Найти все сообщения от MixPetrov
 
Регистрация: 12.10.2016
Сообщений: 53

С заданными
var max=100;
var min=50;


работает прекрасно, а вот если их задавать выводом из бд не работает.

А вот в этом скрипте срабатывает:

function quantity(product_id, quantity ,minimum, maximum) {
		if (qnty == '') return;
		var qnty = Number($('input[name=\'' + product_id + '\']').val());
		qnty += Number(quantity);
		if(qnty > minimum) {
			$('input[name=\'' + product_id + '\']').val(qnty);
			recalc(product_id)
		} else {
			$('input[name=\'' + product_id + '\']').val(minimum);
			recalc(product_id)
		};
		var maxqnty = Number($('input[name=\'' + product_id + '\']').val());
		maxqnty == Number(quantity);
		if(maxqnty < maximum) {
			$('input[name=\'' + product_id + '\']').val(maxqnty);
			recalc(product_id)
		} else {
			$('input[name=\'' + product_id + '\']').val(maximum);
			recalc(product_id)
		};
	}


А в последовательности не хочет максимум цеплять:

function quantity(product_id, quantity ,minimum, maximum) {
		if (qnty == '') return;
		var qnty = Number($('input[name=\'' + product_id + '\']').val());
		qnty += Number(quantity);
		if(qnty > minimum) {
			$('input[name=\'' + product_id + '\']').val(qnty);
			recalc(product_id)
		} else {
			$('input[name=\'' + product_id + '\']').val(minimum);
			recalc(product_id)
		};
		var maxqnty = Number($('input[name=\'' + product_id + '\']').val());
		maxqnty == Number(quantity);
		if(maxqnty < maximum) {
			$('input[name=\'' + product_id + '\']').val(maxqnty);
			recalc(product_id)
		} else {
			$('input[name=\'' + product_id + '\']').val(maximum);
			recalc(product_id)
		};
	}

	function recalc(product_id) {
		var quantity = $('input[name=\'' + product_id + '\']').val();
		var maximum = $('input[name=\'' + product_id + '\']').val(maximum);
		var minimum = minimum;
		var quantity = quantity ||1;
		quantity=parseInt(quantity);
		quantity=(quantity>maximum) ? maximum: quantity;
		quantity=(quantity<minimum) ? minimum: quantity;
		var quantity = typeof(quantity) != 'undefined' ? quantity : 1;
		var options_price = 0;
	
		$('#option_'+product_id+' option:selected, #option_'+product_id+' input:checked').each(function() {
			if ($(this).attr('price_prefix') == '+') { options_price = options_price + Number($(this).attr('price')); }
			if ($(this).attr('price_prefix') == '-') { options_price = options_price - Number($(this).attr('price')); }
		});
	
		var price_no_format = Number($('.change-price'+product_id).attr('price'));
		var special_no_format = Number($('.change-special'+product_id).attr('price'));
		var new_price = (price_no_format + options_price) * quantity;
		var new_special = (special_no_format + options_price) * quantity;
		$('.change-price' + product_id).html(price_format(new_price));
		$('.change-special' + product_id).html(price_format(new_special));
	}


Не работает. Подозреваю, что выводится не то значение в максимум.
Ответить с цитированием