如何计算总和jquery?

时间:2015-06-19 07:08:27

标签: jquery

我有数量的价格表。如果我在输入中写入数量并从下拉列表中选择颜色并选择具有价格的产品,我需要计算总和。首先,我需要数量和颜色价格的数组。其次,支票号码在表格数量栏中。输入必须是最小的30.例如:如果数字299 - 数量是200,如果4300 - 数量是3000等等更小。有我的桌子和jquery:

var total = $("#Total").val();
var table = Array();
$("table.quantity tr td:nth-child(1)").each(function (i, v) {
    table[i] = $(this).text();
});

console.log(table);
$('#Quantity').on("input", function () {
    var quantity = this.value;
    var count = 0;

    if (quantity >= 30) {
        $.each(table, function (i, value) {
            if (quantity >= parseInt(value)) {
                count = value;
            };
        });
        console.log(count);
    }
});
$('#select-model').on('change', function(){
    var price = $('option:selected', this).data('price');
    if (total == '') {
        total = 1;
    }
    $("#Total").val(price * total);
});

我认为数组必须像:

Array 
( 
    [30] => Array 
        ( 
            [1] => 1.4 
            [2] => 1.7
...
            [8] => 
        ) 
    [50] => Array 
        ( 
            [1] => 1.1 
            [2] => 1.3
...
            [8] => 2.4
        ) 
...
    [5000] => Array 
        ( 
            [1] => 0.3 
            [2] => 0.35
...
            [8] => 1
        ) 
)

我的代码是:http://jsfiddle.net/Dewilas/cz69vL8u/

总结果为:

例如:6.59 * 5000 * 0.3 (product1 *数量5000 *颜色1)

1 个答案:

答案 0 :(得分:1)

我想,你想要乘法而不是求和 -

查看以下内容是否对您有所帮助 -

您可以为所有输入添加公共类选择器,然后进行计算。我认为它是'myinput'。

$('.myinput').on('change', function () {

        var total = 1;
        var input_val;

        $('.myinput').each(function(){

            if($(this).attr("id") == "select-model"){
                input_val = $('option:selected', this).data('price');
            }
            else{
                input_val =  $(this).val();
            }

            if (input_val == '' || input_val == 0) {
                input_val = 1;
            }

           total = total * input_val;

        });

        $("#Total").val(total);
    });

注意:我默认将数量视为1,因此默认情况下可以在总框中看到其他输入的值,因此您可以根据需要更改该值。

JS小提琴:http://jsfiddle.net/cz69vL8u/22/