2017-01-19 35 views
1

我开始在js,请帮助我。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>

+0

我为您创建了一个片段 - 并且您还需要将jQuery添加到您的JSFiddle。该片段已显示您需要修复的错误。 '['ABB'],-5]; liste [1] = ['BBC'],-10];'是无效的JS。此外,这个'document.getElementById('participantEventTicketSum')。innerHTML;'与'$('#participantEventTicketSum')。html();' – mplungjan

回答

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; 
+0

两天工作解决这个问题,感觉不好寻求帮助。 – Slawotu

+0

我有最后一个问题。如何删除促销代码?输入代码时,我想回到入口点。删除代码,它仍然是一个促销价值 – Slawotu

+0

我更新上面的小提琴。编辑您的原始问题。 – Observer