2017-01-19 4 views
1

저는 js에서 beginer입니다. 제발 도와주세요.두 가지 기능을 교차하는 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

이 문제에 대한 해결책을 얻는 데 2 ​​일간의 시간이 걸리므로 도움을 청하는 것이 좋습니다. – Slawotu

+0

마지막 질문이 있습니다. 프로모션 코드를 삭제하는 방법은 무엇입니까? 코드를 입력 할 때 엔트리 포인트로 돌아가고 싶습니다. 코드를 제거하면 프로모션 값으로 남습니다. – Slawotu

+0

위의 피들을 업데이트했습니다. 원래 질문을 편집하십시오. – Observer

관련 문제