如何解决“使用jQuery subraction”

时间:2019-01-28 09:46:14

标签: javascript jquery

我正在尝试使用jQuery

虽然减法,其总是从最后一个元素中减去

 
     $(".add").click(function(){
        $(".sub").val((parseFloat($("#a").val()) - parseFloat($("#paid").val())));
      });
      $(".add").click(function(){
        $(".sub").val((parseFloat($("#b").val()) - parseFloat($("#paid").val())));
      });
      
           $(".add").click(function(){
        $(".sub").val((parseFloat($("#c").val()) - parseFloat($("#paid").val())));
      });
      
            $(".add").click(function(){
        $(".sub").val((parseFloat($("#d").val()) - parseFloat($("#paid").val())));
      });
    
 


<form name="myform">
      <input type="button" id="a" value="50">
        <input type="button" id="b" value="100">
        <input type="button" id="c" value="500">
        <input type="button" id="d" value="2000">
  
      
    </form>
 <td><input type="text" name="paid" class="text" id="paid" value="10"/></td>

 <td>   <input type="button" value = "Calculate" class="add" id="add"></td>
 
       <td><input type="text" class="sub"></td>
          
         

当我从50减去10时,它应该显示40。但是显示1990

2 个答案:

答案 0 :(得分:1)

在您的代码中,所有4个函数都在add函数中定义。单击“计算”时,所有功能都会一一运行,并且始终选择结束功能的值。总是从2000年开始减去,因为总是以1990年为输出。

var a;
$('form input').click(function(){a=$(this).val()});
$(".add").click(function(){

        $(".sub").val((parseFloat(a)) - parseFloat($("#paid").val()));
      });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form name="myform">
      <input type="button" id="a" value="50">
        <input type="button" id="b" value="100">
        <input type="button" id="c" value="500">
        <input type="button" id="d" value="2000">
  
      
    </form>
 <td><input type="text" name="paid" class="text" id="paid" value="10"/></td>

 <td>   <input type="button" value = "Calculate" class="add" id="add"></td>
 
       <td><input type="text" class="sub"/></td>

答案 1 :(得分:0)

这会有所帮助:)

var setVal = 0;
$(".add").click(function() {
  console.log("clicked", setVal);
  $(".sub").val(setVal - parseFloat($("#paid").val()));
  setVal = 0;
});

$("form input").click(function() {
  setVal = 0;
  setVal = this.value;
  console.log("setVal--", setVal)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form name="myform">
  <input type="button" id="a" value="50">
  <input type="button" id="b" value="100">
  <input type="button" id="c" value="500">
  <input type="button" id="d" value="2000">


</form>
<td><input type="text" name="paid" class="text" id="paid" value="10" /></td>

<td> <input type="button" value="Calculate" class="add" id="add"></td>

<td><input type="text" class="sub"></td>