2017-12-28 29 views
-1

저는 사용자가 인보이스를 매우 쉽게 작성할 수있는 일종의 인보이스 시스템을 만드는 일에 바쁩니다. 이제는 제품별로, 세 가지 변수/항목을 셀 수있는 시점에 있지만 자바 스크립트 코드는 텍스트 (+ 연산자 포함)를 넣습니다.Javascript count 두 변수가 잘못되었습니다.

예 :

selectmenu 1 = 옵션 0 (단 VAT = 8.50 유로의) selectmenu 2 = 옵션 1 (VAT = 12.76 유로의 경우)

이제 출력이어야한다 (8.50 + 12.76) = 21.26

내 상황에서 출력은 = 8.5012.76

내 (부분)을 자바 스크립트 코드 :

$("select#product").on("change", function (e) { 
    var $row = $(e.target).closest('.productitem'); 
    var selVal = $row.find('#product').val(); 

    var totalvat; 
    var currentVat = $('#totalvat').val(); 
    var NLhoog = 1.21; 

    var price0EXC = 40.49; 
    var price0INC = (price0EXC * NLhoog).toFixed(2); 
    var price0VAT = (price0INC - price0EXC).toFixed(2); 
    var price1EXC = 60.74; 
    var price1INC = (price1EXC * NLhoog).toFixed(2); 
    var price1VAT = (price1INC - price1EXC).toFixed(2); 

    if (selVal === "0") { 
     $row.find("input#vat").val(price0VAT); 
     $row.find("input#priceEXC").val(price0EXC); 
     $row.find("input#priceINC").val(price0INC); 

     totalvat = (currentVat + price0VAT); 
     $('input#totalvat').val(totalvat); 

    } else if (selVal === "1") { 
     $row.find("input#vat").val(price1VAT); 
     $row.find("input#priceEXC").val(price1EXC); 
     $row.find("input#priceINC").val(price1INC); 

     totalvat = currentVat+price1VAT; 
     $('input#totalvat').val(totalvat); 

    } 
}); 

코드의 중요하지 않은 부분을 제외 시켰습니다. 내가 뭘 잘못하고 있는지 알고 계시면 알려주십시오.

+0

'currentVat' 및'priceVAT' 값을 합산하기 전에'parseFloat'를 사용하여 부동 소수점으로 구문 분석하십시오. –

+1

'currentvat'는 문자열이기 때문에. 미리'parseFloat' 할 필요가 있습니다. – Adriani6

+0

HTML에 중복 된 ID가있는 것 같습니다. 그거야? – Tomalak

답변

0

도움이 되시겠습니까?

var currentVat = parseFloat($('#totalvat').val()); 
0

내가 입력 한 값을 얻으려면 var currentVat = $('#totalvat').val();을 사용하고 있습니까? 이 문자열은 관련 데이터 유형에 대해 일부 구문 분석이 필요한 문자열입니다. +이 문자열과 함께 사용되면 컴파일러는 연결을 수행합니다.

같은 시도 :

var currentVat = parseFloat($('#totalvat').val()); 

를 또는 나중에에 그것을 할 :

parseFloat(currentVat); 

당신은 내가 마지막에 접미사 .ToFixed(2)을 추가하는 것을 고려 거라고 통화로 번호를 사용하는 것처럼, 그리고 다른 형식 일 수도 있습니다