【问题标题】:how do I subtract single textbox values with multiple textboxes values using Javascript?如何使用 Javascript 减去具有多个文本框值的单个文本框值?
【发布时间】:2013-03-26 22:18:02
【问题描述】:

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

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

我想要这样

Total-Advance=Balance-Discount?

<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" />

【问题讨论】:

  • 您能改写一下这个问题吗?很难理解您在寻找什么。你需要计算什么?余额?您想应用哪些公式?余额 = 总计 - 预付款。余额 = 余额 - 折扣
  • @pdjota 当我减去总预付款和余额文本框中显示的值但问题是我不能用折扣文本框值减去余额文本框值?
  • @pdjota Total-Advance=Balance-Discount?

标签: javascript html subtraction


【解决方案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;
}  

【讨论】:

  • 它是因为当你没有价值时,你可以在这种情况下设置0
【解决方案2】:

你需要使用 ||当 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/

【讨论】:

  • 好的,那么请在任何答案中将问题标记为已回答:)
  • 如果你标记我的问题,我没有那么多声望,那么我会得到一些声望
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-19
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 2021-07-07
  • 1970-01-01
相关资源
最近更新 更多