2016-04-01 87 views
0

我有4個文本框,即customer_phy_tot,customer_che_tot,customer_bio_tot。我試圖添加並顯示所有3個輸入框值到第4個輸入,customer_pcb_tot如何添加輸入值

customer_bio_obt.blur(function(){ 
    var customer_pcb_tot = isNaN(parseInt($("#customer_phy_tot").val() + $("#customer_che_tot").val() + $("#customer_bio_tot").val())) ? 0 :($("#customer_phy_tot").val() + $("#customer_che_tot").val() + $("#customer_bio_tot").val()) 
    $("#customer_pcb_tot").val(customer_pcb_tot); 
}); 

這個問題是,而不是我的代碼是將它作爲一個字符串處理。假設我的值分別爲10,155。它應該在第四個框中顯示30,但在我的情況下顯示爲10155

任何幫助極大的讚賞。

+1

use parseInt對於單獨的值不是所有'val()+ val()' – teran

+0

'total =(parseInt($(「#somtthing」)。val())|| 0)+ ...' – teran

回答

3

您使用parseInt()了,但你需要使用它的每一個人val()調用返回的字符串值。另請注意,您使用三元表達式是多餘的。試試這個:

customer_bio_obt.blur(function() { 
    var customer_pcb_tot = parseInt($("#customer_phy_tot").val(), 10) + parseInt($("#customer_che_tot").val(), 10) + parseInt($("#customer_bio_tot").val(), 10); 
    $("#customer_pcb_tot").val(customer_pcb_tot || 0); 
}); 
3

使用parseInt()功能來做到這一點:)

你必須用它來每個值也使得它的工作原理。

由於@Jamie [R Rytlewski說:

確保您使用的基數也很有價值。 parseInt(string,radix);

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt

+0

我試過但沒有運氣,謝謝 – Sha

+2

但請確保您也使用基數值。 parseInt(string,radix); https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/parseInt –

+0

基數默認爲10 – teran

0

你可以在你要求的每個val()中使用parseInt()。 或者在總和之前將每一個乘以1。 var customer_pcb_tot = isNaN(parseInt($(「#customer_phy_tot」).val()+ $(「#customer_che_tot」).val()+ $(「#customer_bio_tot」).val()))? 0 :($(「#customer_phy_tot」).val()* 1 + $(「#customer_che_tot」).val()* 1 + $(「#customer_bio_tot」).val()* 1)