动态在jquery中为keyup函数添加值

时间:2014-11-06 10:32:43

标签: javascript jquery

在此Fiddle查看我的fiddle。我有不同的id和类,我想添加动态值。虽然键我想在总字段中动态添加值

我有3个输入,其中包含ID InvQty1,InvQty2和InvQty3以及一个id为的输入

$(document).ready(function(){
    $('.InvQty').keyup(function(){

       var val2 =  parseInt($('#InvQty1').val())+parseInt($('#InvQty2').val());

        $('#Total').val(val2);
    });
});

任何帮助真的很感激!

6 个答案:

答案 0 :(得分:2)

查看此jsFiddle Link

$(document).ready(function(){
    $('.InvQty').keyup(function(){

       var val2 = 0;
       $("input[id^='InvQty']").each(function()
       {
           if($(this).val().length != 0)
           {
       val2 = val2 + parseFloat($(this).val())  // need to parse int and float avoiding NaN
           }
    });

        $('#Total').val(val2);
    });
});

答案 1 :(得分:0)

这是一个解决方案。您设置了该函数,然后,在每个keyup中,它获取具有InvQty类的每个元素,然后获取其值并将其添加到total。然后它将它设置在总输入中。

  $('.InvQty').keyup(function(){

       var total = 0;
        $('.InvQty').each( function(){
           total += parseFloat($(this).val());
        });
        $('#Total').val(total);
    });

如果您在其上添加更多具有InvQty类的输入,这也有效。 http://jsfiddle.net/2z4ddh7o/13/

编辑:按照myfunkyside

的建议放置parseFloat

答案 2 :(得分:0)

尝试此操作:在keyup上,迭代所有InvQty输入并总结值以将其合计。使用parseFloat()来避免NaN

$(document).ready(function(){
    $('.InvQty').keyup(function(){

       var val2 = 0;
        $('.InvQty').each(function(){
            val2+=(parseFloat($(this).val()) || 0);
        });
        $('#Total').val(val2);
    });
});

<强> DEMO

答案 3 :(得分:0)

尝试以下代码

$(document).ready(function(){

    $('.InvQty').keyup(function(){
       var res = 0 ; 
        $(".InvQty").each(function() {
            res += parseInt($(this).val());

        });

        $('#Total').val(res);
    });
});

Fiddle

答案 4 :(得分:0)

$(document).ready(function(){
    $(document).on('keyup', '.InvQty', function(){
       var val2 = 0;
        //each input where id starts with 'InvQty' (id='InvQty*')
        $('input[id^="InvQty"').each(function(i, el){
            //get int val
            var curVal = parseInt( $(el).val() );
            //if empty input, then we calculate this as zero value
            var curVal = (isNaN( curVal ) ? 0 : curVal );
            //summ
            val2 = val2 + curVal;
        });
        //result
        $('#Total').val(val2);
    });
});

http://jsfiddle.net/52g6v9kq/ - 演示

答案 5 :(得分:-1)

你需要试试这个:

$(document).ready(function(){
        $('.InvQty').keyup(function(){
            var Total = 0;
            $('.InvQty').each(function(){
                if(parseInt($(this).val()))
                    Total += parseInt($(this).val());
            });
            $('#Total').val(Total);
        });
    });

NaN值出现是因为parseInt('')返回NaN而不是0。

我希望这会对你有帮助!