2017-12-28 13 views
-1

私は非常に簡単に請求書を作ることができる種類の請求書システムを作ることに忙しいです。今私は、製品ごとに、3つの異なる変数/項目を数えなければならないが、それらを数える代わりに、JavaScriptのコードではテキストのように(+演算子で)置く。JavaScriptの数が2つの変数に間違っています

例:(VAT = 8.50ユーロの) selectmenu 2 =オプション1(VAT = 12.76ユーロの)

すぐ出力(8.50 + 12.76)でなければならない

selectmenu 1 =オプション0 = 21.26

私の状況で出力された= 8.5012.76

私の(部分)JavaScriptコード:

$("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)を追加することを検討したい通貨としての数字を使用しているため、と多分他の書式設定

関連する問題