我创建了一个使用输入字段的票证订购表单,该字段由减号(-1)和加号(+1)按钮控制。
还有另一个脚本通过获取每个票证(.qty-holder)的(价格)并将其乘以输入内部的(数量)来计算订单总数。
价格由PHP生成,并与#36;#36;' ($)在打印号码之前。这导致javascript计算仅为NaN。当$符号在那里时,我无法得到计算出的值,只有当它只是一个数字时它才有效。
有没有办法让脚本只在标签内搜索数字,我怎么做才能使输出(总数)包含' $'和一个有两位小数的数字?
此外,减号和加号按钮脚本不会影响计算的值。因此,如果单击加号按钮增加输入中的数字,则不会计算新的总数。有没有办法连接这两个,并从加号按钮5?
中取出最大值我的代码如下。非常感谢任何帮助!
<div class='row'>
<div class='col-sm-12'>
<div class='qty-holder'>
<a class='minus increment qty value-btn' href='#'>-</a>
<input type='number' name='quantity_37' class='value qty' id='37' step='1' min='0' max='5' value='0' readonly>
<a class='plus increment qty value-btn' href='#'>+</a>
<span class='hidden fees'>$1.60</span>
<span class='hidden price'>$20.00</span>
<span class='hidden sum'>0</span>
</div>
</div>
</div>
<div class="checkout">
<span>Fees:</span><span class="fees pull-right"></span><br />
<span>Total:</span><span id="total" class="pull-right"></span>
<button type="submit" class="btn btn-lg btn-danger text-uppercase btn-tickets">Checkout</button>
</div>
<script>
$(function(){
$('.increment').click(function() {
var valueElement = $('#'+$(this).siblings('input').attr('id'));
if($(this).hasClass('plus'))
{ valueElement.val(Math.max(parseInt(valueElement.val()) + 1)); }
else if (valueElement.val() > 0) // Stops the value going into negatives
{ valueElement.val(Math.max(parseInt(valueElement.val()) - 1)); }
return false;
});
});
</script>
<script>
function getTotal(){
var total = 0.00;
$('.sum').each(function(){
total += parseFloat(this.innerHTML)
});
$('#total').text(total);
}
getTotal();
$('.value').keyup(function(){
var parent = $(this).parents('.qty-holder');
var price = $('.price', parent);
var sum = $('.sum', parent);
var value = parseInt(this.value) * parseFloat(price.get(0).innerHTML||0);
sum.text(value);
getTotal();
})
</script>