I have some problems during working with cart product ++ and — using jquery and form submit on button click also but only first cart product working correctly and another not working because Id issue Please reffer my code as below :
JavaScript
x
$(document).ready(function() {
$('.plus').click(function() {
var num = parseInt($('#quantity').val());
if (num == 10) {
num = 10;
} else {
num++;
}
$('#quantity').val(num);
});
$('.minus').click(function() {
var num = parseInt($('#quantity').val());
if (num == 1) {
num = 1;
} else {
num--;
}
$('#quantity').val(num);
});
});
JavaScript
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet"/>
<form method='post' action=''>
<input type='hidden' name='code' value="1234" />
<input type='hidden' name='action' value="change" />
<div class="qty input-group pb-1">
<span class="input-group-btn">
<button class="btn btn-theme-round btn-number minus" type="button">-</button>
</span>
<input type="text" value="0" name="quantity" id="quantity_1234" class="quantity">
<span class="input-group-btn">
<button class="btn btn-theme-round btn-number plus" type="button">+</button>
</span>
</div>
</form>
<form method='post' action=''>
<input type='hidden' name='code' value="5678" />
<input type='hidden' name='action' value="change" />
<div class="qty input-group pb-1">
<span class="input-group-btn">
<button class="btn btn-theme-round btn-number minus" type="button">-</button>
</span>
<input type="text" value="0" name="quantity" id="quantity_5678" class="quantity">
<span class="input-group-btn">
<button class="btn btn-theme-round btn-number plus" type="button">+</button>
</span>
</div>
</form>
Advertisement
Answer
You have issue with ID and Class
If you want to submit when they click, you need to do this:
Please note I removed all stuff from the plus/minus buttons and moved the ID to class
JavaScript
$(function() {
$('.btn-number').click(function() {
const $form = $(this).closest("form");
var num = +$('.quantity',$form).val();
num += $(this).hasClass("plus") ? 1 : -1; // which button?
if (num >= 10) {
num = 10;
} else if (num <= 0) {
num = 0;
}
$('.quantity',$form).val(num);
// $form.submit(); // uncomment to submit
});
});
JavaScript
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet"/>
<form method='post' action=''>
<input type='hidden' name='code' value="1234" />
<input type='hidden' name='action' value="change" />
<div class="qty input-group pb-1">
<span class="input-group-btn">
<button class="btn btn-theme-round btn-number minus" type="button">-</button>
</span>
<input type="text" value="0" name="quantity" id="quantity_1234" class="quantity">
<span class="input-group-btn">
<button class="btn btn-theme-round btn-number plus" type="button">+</button>
</span>
</div>
</form>
<form method='post' action=''>
<input type='hidden' name='code' value="5678" />
<input type='hidden' name='action' value="change" />
<div class="qty input-group pb-1">
<span class="input-group-btn">
<button class="btn btn-theme-round btn-number minus" type="button">-</button>
</span>
<input type="text" value="0" name="quantity" id="quantity_5678" class="quantity">
<span class="input-group-btn">
<button class="btn btn-theme-round btn-number plus" type="button">+</button>
</span>
</div>
</form>