减去最近的输入以在另一个输入上设置它的值

时间:2016-02-16 05:18:50

标签: javascript jquery html

我正在开展一个项目。我想减去begbal输入框和最近的amtcoll输入框的值,并将结果放在最近的endbal输入框上。

我的HTML代码是:

<tr>
<td><input type="number" name="amtcoll[]" id="amtcoll" class="form-control text-right" value="2000.00"></td>
<td><input type="number" name="begbal[]" id="begbal" class="form-control text-right" value="0.00"></td>
<td><input type="number" name="endbal[]" id="endbal" class="form-control text-right" value="0.00"></td>
</tr>
<tr>
<td><input type="number" name="amtcoll[]" id="amtcoll" class="form-control text-right" value="1000.00"></td>
<td><input type="number" name="begbal[]" id="begbal" class="form-control text-right" value="0.00"></td>
<td><input type="number" name="endbal[]" id="endbal" class="form-control text-right" value="0.00"></td>
</tr>

到目前为止我使用的JavaScript是:

<script type="text/javascript">
        $(document).ready(function(){ 
            $("input[name^=begbal]").change(function() {
                $(this).closest("tr").find("input[name^=endbal]").value =  $(this).closest("tr").find("input[name^=begbal]").value - $(this).closest("tr").find("input[name^=amtcoll]").value;
            });
        });
    </script>

我想在输入的时候输入减法的结果将传递给最近的endbal。但最近的终端输入没有传递任何价值。请帮忙。我可以得到如何解决这个问题。感谢。

3 个答案:

答案 0 :(得分:1)

要获取输入值,您需要使用val而不是value

$("input[name^=begbal]").change(function () {
  $(this).closest("tr").find("input[name^=endbal]").val( $(this).closest("tr").find("input[name^=begbal]").val() - $(this).closest("tr").find("input[name^=amtcoll]").val());
});

答案 1 :(得分:0)

请试试这个:

$(document).ready(function(){ 
    jQuery("input[name^=begbal]").on('input', function() {
    var amtVal = $(this).closest("tr").find("input[name^=amtcoll]").val();
    var begalVal = $(this).closest("tr").find("input[name^=begbal]").val();
    $(this).closest("tr").find("input[name^=endbal]").val(parseInt(begalVal - amtVal));
    });
});

答案 2 :(得分:0)

它的价值 - 这是另一个,它避免了在DOM上下走得太远。注意 - 您不应该有两个具有相同ID的元素。

&#13;
&#13;
$(document).ready(function() {
  $("input[class^=begbal]").change(function() {
    var endbal = $(this).val() - $(this).prev('.amtcoll').val();
    $(this).next('.endbal').val(endbal);
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<tr>
  <td>
    <input type="number" name="amtcoll[]" class="amtcoll" class="form-control text-right" value="2000.00">
  </td>
  <td>
    <input type="number" name="begbal[]" class="begbal" class="form-control text-right" value="0.00">
  </td>
  <td>
    <input type="number" name="endbal[]" class="endbal" class="form-control text-right" value="0.00">
  </td>
</tr>
<tr>
  <td>
    <input type="number" name="amtcoll[]" class="amtcoll" class="form-control text-right" value="1000.00">
  </td>
  <td>
    <input type="number" name="begbal[]" class="begbal" class="form-control text-right" value="0.00">
  </td>
  <td>
    <input type="number" name="endbal[]" class="endbal" class="form-control text-right" value="0.00">
  </td>
</tr>
&#13;
&#13;
&#13;