2013-07-17 49 views
1

我有一個HTML表格,其中包含一個值以及每行的複選框。 當我點擊複選框時,它會激活一個腳本,將該值添加到另一個固定單元格中。如果複選框被選中,它將添加數字,如果未選中,則減去該數字。更改單元格中的浮點數值

function val_sel_achat(val, id) 
{ 
    if (document.getElementById(id).checked) 
    { 
     document.getElementById('res_achat').innerHTML += val; 
    } 
    else 
    { 
     document.getElementById('res_achat').innerHTML -= val; 
    } 
} 

這主要是運作良好,但它似乎串聯鏈,而不是加號。 因此,如果我選中val = 100的方框,然後取消選中它,它將顯示100,然後顯示0,這是正確的。 但是,如果我檢查兩個不同的框,如100和25,它顯示10025.

如何更改我的代碼,以便它顯示125?

謝謝。

+0

,使用這個:'的document.getElementById( 'res_achat')的innerHTML =(parseFloat( x)+ val).toFixed(2);' – Stano

回答

1
function val_sel_achat(val, id) 
{ 
    var x = document.getElementById('res_achat').innerHTML; 
    if (document.getElementById(id).checked) 
    { 
     document.getElementById('res_achat').innerHTML = parseFloat(x) + val; 
    } 
    else 
    { 
     document.getElementById('res_achat').innerHTML = parseFloat(x) - val; 
    } 
} 
如果你有舍入的問題
+0

它返回NaN,即使我做了一個parseFloat(val)而不是val。 –

+0

@ user2542743所以res_achat的內容不只是一個數字?將第一行替換爲獲取res_achat中實際數字的第一行 –

+0

首先它是空的。我將它改爲0,現在就像魅力一樣,非常感謝。 –

0

使用.parseFloat()

function val_sel_achat(val, id) { 
    var inner = document.getElementById('res_achat').innerHTML; 
    if (document.getElementById(id).checked) { 
     document.getElementById('res_achat').innerHTML = parseFloat(inner) + parseFloat(val); 
    } else { 
     document.getElementById('res_achat').innerHTML = parseFloat(inner) - parseFloat(val); 
    } 
} 

樣本工作不復選框fiddle

+1

nope ............ innerHTML是一個不能用' - ='的字符串。 –

+0

@RoyiNamir謝謝。更新它。 – Praveen

相關問題