js穿越两个功能

时间:2017-01-19 15:08:07

标签: javascript jquery html

我是js的生儿,请帮助我。

我有两个功能。第一个功能总和所有已检查的输入票据和查看总价,次要功能检查折扣代码并考虑新价格。

问题是当我添加折扣代码然后会选择一张票。然后它不计算值。

https://jsfiddle.net/wznvfkm3/

$('.participantEventTicket').on('change', function() {

  var totalPrice = 0.00;
  $('.participantEventTicket:checked').each(function() {
    totalPrice += parseFloat($(this).data('price'), 10);
  });
  $('.participantEventTicketSum').html(totalPrice.toFixed(2));
  $('.participantEventTicketDiscountValueTotal').html(totalPrice);
});

$('.participantEventTicketDiscount').on('change', function() {

  var code = ($(this).val());
  var valueTotal = document.getElementById('participantEventTicketSum').innerHTML;
  var value = 0;
  var liste = [];
  liste[0] = ['ABB'], -5]; liste[1] = ['BBC'], -10];
for (var i = 0, len = liste.length; i < len; i++) {
  if (liste[i][0] === code) {
    var value = liste[i][1];
  }
}
var valueTotalS = parseInt(valueTotal) + parseFloat(value);

$('#participantEventTicketDiscountValue').html(value.toFixed(2));
$('#participantEventTicketDiscountValueTotal').html(valueTotalS);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  ticket 1
  <input type="checkbox" name="participantEventTicket[]" value="5" class="participantEventTicket" />
  <br/>ticket 2
  <input type="checkbox" name="participantEventTicket[]" value="10" class="participantEventTicket" />
  <br/>Sume tickets: <span class="participantEventTicketSum" id="participantEventTicketSum">0.00</span>
  <br/>Discount coupon
  <input type="text" id="participantEventTicketDiscount" class="participantEventTicketDiscount">
  <br/>Discount value <span id="participantEventTicketDiscountValue" class="participantEventTicketDiscountValue">0.00</span>
  <br/>Discount value sum <span id="participantEventTicketDiscountValueTotal" class="participantEventTicketDiscountValueTotal">0.00</span>
</form>

1 个答案:

答案 0 :(得分:0)

Slawotu,

请检查fiddle 你有几个错误:

$('.participantEventTicket:checked').each(function () { totalPrice += parseFloat($(this).val(), 10);}); 
// you supposed to take $(this).val()

当您输入折扣并更改了票证时,您没有计算总价格:

$('.participantEventTicketDiscountValueTotal').html(totalPrice + value);

忘了但是括号:

liste[0] = [['ABB'], -5];
liste[1] = [['BBC'], -10];

您使用===而不是使用==

比较了2个不同的对象
if (liste[i][0] == code)

在文件顶部声明val,不要在if语句中声明。

var value = 0;