Mudit Kumar
Mudit Kumar

Reputation: 60

Get Average of present filled text boxes in jquery

I want to get the average of filled text box values and show that in average text box

Problem : I can calculate the sum of filled text box But i am not sure how to get the number of filled text box and get Average of them Like if two text boxes are files with the values 5 and 6 then the total should be 11 and average should be 5.5 (11/2)

My code is below please check

HTML File

<input type="text" value="" name="prj_usgjan" class="prj_usage" id="prj_usgjan">
<input type="text" value="" name="prj_usgfeb" class="prj_usage" id="prj_usgfeb">
<input type="text" value="" name="prj_usgmar" class="prj_usage" id="prj_usgmar">
<input type="text" value="" name="prj_usgapr" class="prj_usage" id="prj_usgapr">
<input type="text" value="" name="prj_usgmay" class="prj_usage" id="prj_usgmay">
<input type="text" value="" name="prj_usgjun" class="prj_usage" id="prj_usgjun">
<input type="text" value="" name="prj_usgjul" class="prj_usage" id="prj_usgjul">
<input type="text" value="" name="prj_usgaug" class="prj_usage" id="prj_usgaug">
<input type="text" value="" name="prj_usgsep" class="prj_usage" id="prj_usgsep">
<input type="text" value="" name="prj_usgoct" class="prj_usage" id="prj_usgoct">
<input type="text" value="" name="prj_usgnov" class="prj_usage" id="prj_usgnov">
<input type="text" value="" name="prj_usgdec" class="prj_usage" id="prj_usgdec">
<input type="text" readonly="readonly" name="prj_usgtot" class="prj_usgtot" id="prj_usgtot">
<input type="text" readonly="readonly" name="prj_usgavg" class="prj_usgavg" id="prj_usgavg">

Js File

jQuery(".prj_usage").keyup(function(){
        var sum = 0;
        jQuery('.prj_usage').each(function() {
            sum += Number(jQuery(this).val());
         });
            jQuery('#prj_usgtot').val(sum); // get the sum and show that in total text box 
     });

Upvotes: 1

Views: 886

Answers (1)

Vipul
Vipul

Reputation: 325

Here i find solution , try this :-

jQuery(".prj_usage").keyup(function(){
        var sum = 0;
        var avg = 0;
          jQuery('.prj_usage').each(function() {
           sum += Number(jQuery(this).val());
           });

        var $allx = jQuery(':text.prj_usage');
        var $emptyx = $allx.filter('[value=""]');
        var num = $allx.length - $emptyx.length ;
         if(num > 0){ avg = Number(sum/num); }
        jQuery('#prj_usgtot').val(sum);
        jQuery('#prj_usgavg').val(avg.toFixed(2));
    });

Upvotes: 1

Related Questions