Jquery添加计算值

时间:2016-02-15 23:24:16

标签: javascript jquery

我有一个表格,用户输入一个重量,剩下的字段自动计算。让一切正常工作,除了总计 - 它取最后2个计算字段并将它们加在一起。表单加载后,我会在字段中获得NaN。任何帮助表示赞赏。



jQuery(function () {
  var min = 'Min';
  var total1 = .20;
  var total2 = .17;
  var total3 = .15;
  var total4 = .13;
  var total5 = .09;

  $('#weight').change(function () {
    var w = +$('#weight').val();
    var total;
    if (w < 425) {
      price = min;
    } else if (w < 1000) {
      price = total1;
    }
    else if (w < 2200) {
      price = total2;
    }
    else if (w < 4400) {
      price = total3;
    }
    else if (w < 11000) {
      price = total4;
    }
    else if (w > 11000) {
      price = total5;
    }        
    $('#rate').val(price);
  })
})

jQuery(function () {
  var min = 85.00;
  var total1 = .20;
  var total2 = .17;
  var total3 = .15;
  var total4 = .13;
  var total5 = .09;

  $('#weight').change(function () {
    var w = +$('#weight').val();
    var total;
    if (w < 425) {
      subtotal = min;
    } else if (w < 1000) {
      subtotal = w * total1;
    }
    else if (w < 2200) {
      subtotal = w * total2;
    }
    else if (w < 4400) {
      subtotal = w * total3;
    }
    else if (w < 11000) {
      subtotal = w * total4;
    }
    else if (w > 11000) {
      subtotal = w * total5;
    }        
    $('#subtotal').val(subtotal.toFixed(2));
  })
})

jQuery(function () {
  var iva = .16;

  $('#weight').change(function () {
    var s = +$('#subtotal').val();

    var total;
    if (s <= 85) {
      ivacalc = 85 * iva;
    } else if (s > 85) {
      ivacalc = s * iva;
    }
    $('#iva').val(ivacalc.toFixed(2));
  })
})

jQuery(function () {

  var a = parseFloat($('#subtotal').val());
  var b = parseFloat($('#iva').val());
  $('#total').val(a + b);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <label for="weight">Total Weight (in lbs)</label>
  <input id="weight">
</div>
<div>
  <label for="rate">Rate Per Lb</label>
  <input id="rate">
</div>
<div>
  <label for="subtotal">Sub Total </label>
  <input id="subtotal">
</div>

<div>
  <label for="iva">IVA </label>
  <input id="iva">
</div>

<div>
  <label for="total">Total </label>
  <input id="total">
</div>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

试试这个(假设您在字段上输入正确并触发了该功能):

//Initialize variables and get values from the input field
var subtotal = $('#subtotal').val();
var iva = $('#iva').val();

//Assign to another variable
var a = parseFloat(subtotal);
var b = parseFloat(iva);
var total = a+b;
$('#total').val(total);

答案 1 :(得分:1)

谢谢爱德华。

这没用,但确实如此:

jQuery(function () {

$("#weight").change(function () {
    var iva = $("#iva").val();
    var subtotal = $("#subtotal").val();
    var total = parseFloat(iva) + parseFloat(subtotal);

        $("#total").val(total.toFixed(2));
})

})

现在找出整个货币的事情。

答案 2 :(得分:0)

因为你解析了那些尚未定义的值:

var a = parseFloat($('#subtotal').val()); //parseFloat("")=NaN
var b = parseFloat($('#iva').val()); //parseFloat("")=NaN
$('#total').val(a + b); // NaN+NaN=NaN