Reputation: 151
JS:
var quantity = $("#quantity").val();
var ticketprice = $("#ticketprice").val();
var total = ticketprice * quantity;
$(document).ready(function (e) {
$("input").change(function () {
var value = 0;
$("input[name=quantity]").each(function () {
value = value + parseInt($(this).val());
}),
$("input[name=jumlah3]").val(total);
});
});
The quantity is running on JQuery in this JS file:
function wcqib_refresh_quantity_increments() {
jQuery("div.quantity:not(.buttons_added), td.quantity:not(.buttons_added)").each(function (a, b) {
var c = jQuery(b);
c.addClass("buttons_added"), c.children().first().before('<input type="button" value="-" class="minus" />'), c.children().last().after('<input type="button" value="+" class="plus" />');
});
}
String.prototype.getDecimals || (String.prototype.getDecimals = function () {
var a = this,
b = ("" + a).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
return b ? Math.max(0, (b[1] ? b[1].length : 0) - (b[2] ? +b[2] : 0)) : 0;
}), jQuery(document).ready(function () {
wcqib_refresh_quantity_increments();
}), jQuery(document).on("updated_wc_div", function () {
wcqib_refresh_quantity_increments();
}), jQuery(document).on("click", ".plus, .minus", function () {
var a = jQuery(this).closest(".quantity").find(".qty"),
b = parseFloat(a.val()),
c = parseFloat(a.attr("max")),
d = parseFloat(a.attr("min")),
e = a.attr("step");
b && "" !== b && "NaN" !== b || (b = 0), "" !== c && "NaN" !== c || (c = ""), "" !== d && "NaN" !== d || (d = 0), "any" !== e && "" !== e && void 0 !== e && "NaN" !== parseFloat(e) || (e = 1), jQuery(this).is(".plus") ? c && b >= c ? a.val(c) : a.val((b + parseFloat(e)).toFixed(e.getDecimals())) : d && b <= d ? a.val(d) : b > 0 && a.val((b - parseFloat(e)).toFixed(e.getDecimals())), a.trigger("change");
});
HTML:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="ui-grid-a">
<div class="quantity buttons_added">
<table class="registration-form" id="registration-form">
<tr>
<td>
<div class="ui-block-a">
<div id="test">
<input type="button" value="-" class="minus" id="jumlah" name="jumlah">
</div>
</div>
<div class="ui-block-b">
<input type="number" step="1" min="1" max="10" id="quantity" name="quantity" value="1" title="Qty" class="input-text qty text" size="6" pattern="" inputmode="" readonly>
</div>
<div class="ui-block-c">
<div id="test2">
<input type="button" value="+" class="plus" id="jumlah2" name="jumlah2">
</div>
</div>
</td>
</tr>
</table>
<div id="test3">
<input type="text" value="0" id="jumlah3" name="jumlah3" readonly>
</div>
</div>
</div>
How can I sum up the input values automatically?
Currently, when I increase the quantity, the total price value shown did not change and remain as ticketprice*1.
So for example, if ticketprice is $50 for 1 quantity, when I changed to 2 quantity, it still remains as $50 and not $100.
Upvotes: 4
Views: 585
Reputation: 12951
Try this:
If ticketprice
be 100 :
$(document).ready(function(){
var ticketprice = 100 ;
var quantity ;
$('input[type=button]').click(function(){
quantity = parseInt( $("#quantity").val() ) ;
if(this.className == 'minus' )
quantity = (quantity - 1) < 0 ? 0 : (quantity - 1) ;
else if (this.className == 'plus')
quantity = quantity + 1 ;
$("#quantity").val(quantity);
$("input[name=jumlah3]").val( quantity * ticketprice ) ;
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div class="ui-grid-a">
<div class="quantity buttons_added">
<table class="registration-form" id="registration-form">
<tr>
<td>
<div class="ui-block-a">
<div id="test">
<input type="button" value="-" class="minus" id="jumlah" name="jumlah">
</div>
</div>
<div class="ui-block-b">
<input type="number" step="1" min="1" max="10" id="quantity" name="quantity" value="1" title="Qty" class="input-text qty text" size="6" pattern="" inputmode="" readonly>
</div>
<div class="ui-block-c">
<div id="test2">
<input type="button" value="+" class="plus" id="jumlah2" name="jumlah2">
</div>
</div>
</td>
</tr>
</table>
<div id="test3">
<input type="text" value="100" id="jumlah3" name="jumlah3" readonly>
</div>
</div>
</div>
Upvotes: 1