我有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
,15
和5
。它应该在第4个框中显示30
但在我的情况下显示10155
。
任何帮助非常感谢。
答案 0 :(得分:3)
使用parseInt()
函数执行此操作:)
你必须使用它来使每个值都有效。
正如@Jamie R Rytlewski所说:
确保您也使用基数值。 parseInt(string,radix);
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt
答案 1 :(得分: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);
});
答案 2 :(得分:0)
你可以在你问的每个val()中解析Int()。 或者将每一个乘以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)