如何使用Javascript减去具有多个文本框值的单个文本框值?

时间:2013-03-26 22:18:03

标签: javascript html subtraction

我有代码,但问题是,当我减去总文本框值并提前文本框值等于平衡文本框时,我可以得到结果。但是在将balance textbox减去值之后,函数不能是subtract balance textbox values with discount textbox value

当我减去总预付款和余额文本框中显示的值时,问题是我无法用折扣文本框值减去平衡文本框值?

我想要这样

总提前=平衡 - 折扣?

<script type="text/javascript"> 
function getObj(objID){
return document.getElementById(objID);
}
function C(){
getObj("balance").value=parseFloat(getObj("total").value)-
(parseFloat(getObj("advance").value)) ;
return false;
}  

function D(){
getObj("balance").value=parseFloat(getObj("balance").value)-
(parseFloat(getObj("discount").value)) ;
return false;
}
</script> 

<input type="text" name="total" id="total" />
<input type="text" name="advance" id="advance" />
<input type="text" name="balance" id="balance"
 onfocus="return C();return D();" />
<input type="text" name="discount" id="discount" />

2 个答案:

答案 0 :(得分:1)

试试这个:

修改:添加|| 0以阻止NaN

<input type="text" name="balance" id="balance" onfocus="return C();" />

function C(){
  var balanceValue = parseFloat(getObj("total").value || 0)-
  (parseFloat(getObj("advance").value || 0)) ;

  getObj("balance").value  = parseFloat(balanceValue || 0) -
  (parseFloat(getObj("discount").value || 0)) ;
  return false;
}  

答案 1 :(得分:0)

你需要使用||当NaN

时为0
getObj = function (objID){
return document.getElementById(objID);
}
C = function () {
getObj("balance").value=parseFloat(getObj("total").value  || 0)-
(parseFloat(getObj("advance").value || 0)) ;
return false;
}  

D = function () {
getObj("balance").value=parseFloat(getObj("balance").value || 0)-
(parseFloat(getObj("discount").value)||0) ;
return false;
}

查看交互式示例:http://jsfiddle.net/pdejuan/FcTd9/