如何对字段求和取决于另一个字段的值

时间:2014-08-05 13:06:14

标签: jquery

$("table").keyup(function () {
var sum = 0;
$("input").each(function() {
    if (!Number.isNaN(parseInt(this.value))) {
        sum = sum + parseInt(this.value);
    }
});

$("div").text(sum);
});

我有一个字段表。我已经知道如何对所有文本字段求和,但我尝试做的是将select字段值为1的文本字段求和。

3 个答案:

答案 0 :(得分:0)

试试这个:您可以迭代select代码并检查所选值是否等于1,然后读取下一个td

中显示的文本值
$("table").keyup(function () {
    var sum = 0;
    $("select").each(function() {
        if($(this).val()=="1")
        {
           // get parend  td -> next to parent td -> read input value
           var val = $(this).closest('td').next().find('input').val(); 

           if (!Number.isNaN(parseInt(val))) 
           {
            sum = sum + parseInt(val);
           }
        }
    });

    $("div").text(sum);
});

<强> Demo

答案 1 :(得分:0)

尝试

 $("table").keyup(function () {
    var sum = 0;
    $("input").each(function () {
        if ($(this).closest("td").prev("td").find("select").val() == 1) {
            if (!Number.isNaN(parseInt(this.value))) {

                sum = sum + parseInt(this.value);
            }
        }
    });

    $("div").text(sum);
});

DEMO

工作原理

 $(this).closest("td") // select closest parent td
     .prev("td")          // select prev td
     .find("select").val() // find drop down and get value

答案 2 :(得分:0)

以下是这两种方法的解决方案,当您更改optionkeyup时.. DEMO ..

$("table").keyup(function () {
    var sum = 0;
    $("input").each(function() {
        if ($(this).parent().prev().find("#select_list").val() == 1 && !Number.isNaN(parseInt(val))) {
            sum = sum + parseInt(this.value);
        }
    });
    $("div").text(sum);
});
$("select").change(function(){
    var sum = 0;
    $("select").each(function() {
        if($(this).val()=="1")
        {
            var val = $(this).parent().next().find('input').val(); 
            if (!Number.isNaN(parseInt(val))) {
                sum = sum + parseInt(val);
            }
        }
    });
    $("div").text(sum);
});