javascript - 另一个输入中返回的两个输入字段的差异

标签 javascript

我想以最简单的方式计算两个输入的差异,并在第三个输入中返回它。

id="incomeSharedSum" - id="expendituresSharedSum" = id="disposalIncome"

这是我的表格:

<label for="%nameRoot%[income]">Total Income:€</label>
<input type="text" data-sumSource=".incomePart<?php echo $personOrder; ?>" name="%nameRoot%[income]" id="incomeSharedSum"/>

<label for="%nameRoot%[expenditures]">Total Expenditures: €</label>
<input type="text" data-sumSource=".expendituresPart<?php echo $personOrder; ?>" name="%nameRoot%[expenditures]" id="expendituresSharedSum"/>

<label for="%nameRoot%[disposalincome]">Monthly Disposal Income: €</label>
<input type="text"  name="%nameRoot%[disposalincome]" id="disposalIncome"/>

感谢您对这个非常基本的问题的帮助。谢谢。

==========编辑==========2016年1月21日

我有了一些进展,但现在不知道如何修改 js 来计算差值而不是总和:

<label for="%nameRoot%[income]">Total Income: €</label>
       <input onblur="updateDiff('#disposalIncome');" type="text" data-sumSource=".incomePart<?php echo $personOrder; ?>" name="%nameRoot%[income]" class="form-control disposalIncome" id="incomeSharedSum"/>
<label for="%nameRoot%[expenditures]">Total Expenditures: €</label>
       <input onblur="updateDiff('#disposalIncome');" type="text" data-sumSource=".expendituresPart<?php echo $personOrder; ?>" name="%nameRoot%[expenditures]" class="form-control calc disposalIncome" id="expendituresSharedSum"/>
<label for="%nameRoot%[disposalincome]" class="col-sm-4 field-label">Monthly Disposal Income: €</label>
       <input type="text" data-sumSource=".disposalIncome<?php echo $personOrder; ?>" name="%nameRoot%[disposalIncome]" class="form-control" id="disposalIncome"/>

并使用这段js代码:

function updateDiff(outputFieldSelector){
    var outputField = $(outputFieldSelector);
    var sum=0;
    $(outputField.attr('data-sumSource')).each(function(){
      sum+=Number($(this).val());
    });
      outputField.val(sum);

如何修改此行:

sum+=Number($(this).val());

要获得差异(在我的例子中是两个字段):总收入 - 总支出 = 可处置收入。

最佳答案

此函数将进行求和并将值放入第三个文本框中

function calculateSum()
{
   var incomeSharedSum= parseInt( document.getElementById( "incomeSharedSum" ).value );
   incomeSharedSum = isNaN( incomeSharedSum ) ? 0 : incomeSharedSum;
   var expendituresSharedSum = parseInt( document.getElementById( "expendituresSharedSum" ).value );
   expendituresSharedSum = isNaN( expendituresSharedSum ) ? 0 : expendituresSharedSum ;
   document.getElementById( "disposalIncome" ).value = incomeSharedSum + expendituresSharedSum;
}

您可以在哪个事件(例如前两个框之一的按钮单击或模糊事件)上调用此方法

关于javascript - 另一个输入中返回的两个输入字段的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34895565/

相关文章:

javascript - 从钛合金选取器中获取选定行

JavaScript 访问父对象属性

javascript - 为什么 Javascript 语法使用多个括号?

javascript - 在 Javascript 上实现事件的最佳方式

javascript - 测试文本框的空格输入

javascript - 如何使用来自网络套接字的网络音频 API 流式传输音频 block ?

javascript - Highchart 中的线条着色需要很长时间

javascript - 是否可以让一个 onclick 在 javascript 中一个接一个地运行不同的功能?

javascript - 如何根据 div 的 px 数量更改其宽度。

javascript - 如何将 Javascript "partial classes"与 TypeScript 样式类定义一起使用