使用jquery添加文本字段值

时间:2015-12-07 06:04:49

标签: jquery

我使用jquery来计算输入框的值之和。但我的代码只显示输入的值,并且不显示总数的总和。

$(document).ready(function() {
    $('input').change(function(e) {
        var total_amnt = 0;
        var fcharge1 = ($('#fcharge').val());
        var lrcharge1 = ($('#lrcharge').val());
        var loadingcooly1 = ($('#loadingcooly').val());
        var othercharge1 = ($('#othercharge').val());
        var crossforothers1 = ($('#crossforothers').val());
        var cashpaid1 = ($('#cashpaid').val());
        var doorcollection1 = ($('#doorcollection').val());
        var transhipment1 = ($('#transhipment').val());
        var advanceamt1 = ($('#advanceamt').val());
        var stax1 = ($('#stax').val());
        var cess1 = ($('#cess').val());
        var rebooking1 = ($('#rebooking').val());

        total_amnt = fcharge1 + lrcharge1 + loadingcooly1 + othercharge1 + crossforothers1 + 
        cashpaid1 + doorcollection1 + transhipment1 + advanceamt1 + stax1 + cess1 + 
        rebooking1;

        $('#totamt').val(total_amnt);
    });
}); 

2 个答案:

答案 0 :(得分:1)

原因是.val()返回元素的字符串值。

结果,这里

total_amnt = fcharge1 + lrcharge1 + loadingcooly1 + othercharge1 +   crossforothers1 + cashpaid1 + doorcollection1 + transhipment1 + advanceamt1   + stax1 + cess1 + rebooking1;

你连接字符串,但不是整数。

console.log(1 + 3 + 6); // 10 
console.log('1' + '3' + '6') // '136'

您需要将每个值转换为整数。最简单的方法是在字符串前添加一元+

var fcharge1 = +$('#fcharge').val();
var lrcharge1 = +$('#lrcharge').val();
var loadingcooly1 = +$('#loadingcooly').val();
var othercharge1 = +$('#othercharge').val();
var crossforothers1 = +$('#crossforothers').val();
var cashpaid1 = +$('#cashpaid').val();
var doorcollection1 = +$('#doorcollection').val();
var transhipment1 = +$('#transhipment').val();
var advanceamt1 = +$('#advanceamt').val();
var stax1 = +$('#stax').val();
var cess1 = +$('#cess').val();
var rebooking1 = +$('#rebooking').val();

请注意,这只是一个示例,需要进行检查,验证和其他改进。

在这篇伟大的文章中,阅读有关如何将字符串转换为整数的更多信息:
How do I convert a string into an integer in JavaScript?

答案 1 :(得分:1)

在添加号码之前,请使用parseFloat并检查值是否为数字

这样的东西
 var fcharge1 = ($('#fcharge').val());
 if(isNaN(fcharge1) || fcharge1.length ==0) {
   fcharge1=0;
  }



  var lrcharge1 = ($('#lrcharge').val());
if(isNaN(lrcharge1) || lrcharge1.length ==0) {
   lrcharge1=0;
  }

类似地为每个文本框做,然后像那样添加

total_amnt = parseFloat(fcharge1) + parseFloat(lrcharge1) + parseFloat(loadingcooly1)...;

This可能会对您有所帮助。