mrusklon
@mrusklon
Не получается? Яростно гугли!

Как сделать «+» к товару?

Я занимаюсь только версткой , попросили сделать такие вот штуки:

a2XWQ9oUOKVdmg.jpgnAyY8GgSnv3dAZ.jpg

подскажите как сделать , это формой надо верстать? Интересен вопрос со стороны бекенда , как лучше сделать чтоб потом меньше мороки было тому кто будет после меня делать?
Спасибо
  • Вопрос задан
  • 329 просмотров
Решения вопроса 2
ant1vit
@ant1vit
<div class="number">
    <span class="minus">-</span>
    <input type="text" value="1" size="5"/>
    <span class="plus">+</span>
</div>


<script type="text/javascript" >
        $(document).ready(function() {
            $('.minus').click(function () {
                var $input = $(this).parent().find('input');
                var count = parseInt($input.val()) - 1;
                count = count < 1 ? 1 : count;
                $input.val(count);
                $input.change();
                return false;
            });
            $('.plus').click(function () {
                var $input = $(this).parent().find('input');
                $input.val(parseInt($input.val()) + 1);
                $input.change();
                return false;
            });
        });
Ответ написан
@KFan
Веб-программист
$(".input-buttons").each(function () {
	// 	bplus = +
	//	bminus = -
	
	var input = ($(this).is("[data-target]") ? $($(this).attr("data-target")) : ($(this).is(".bminus") ? $(this).next() : $(this).prev()));
	
	$(this).click(function () {
		var max = $(input).is("[data-max]") ? parseInt($(input).attr("data-max")) : 0;
		var step = $(input).is("[data-step]") ? parseInt($(input).attr("data-step")) : 1;
		
		var val = parseInt($(input).val()) + (step * ($(this).is(".bminus") ? -1 : 1));
		
		if (max != 0 && max < val) {
			val = max;
		}
		
		$(input).val(val).change();
	});
	
	$(input).change(function () {
		var max = $(this).is("[data-max]") ? parseInt($(this).attr("data-max")) : 0;
		var step = $(this).is("[data-step]") ? parseInt($(this).attr("data-step")) : 1;
		
		var val = parseInt($(input).val());
		var valChanged = false;
		
		if (step > 1) {
			if (val % step > 0) {
				val = Math.ceil(val / step) * step;
				valChanged = true;
			}
		}
		
		if (val > max) {
			val = max;
			valChanged = true;
		}
		
		if (valChanged) {
			$(input).val(val).change();
			
			return false;
		}
	});
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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