You are viewing limited content. For full access, please sign in.

Question

Question

Javascript to Refresh

asked on May 23, 2017

Hello, 
I have a form that documents mileage reimbursement request and then totals the reimbursement amount for each cost center/department. The calculations in forms did not work so I had to do this via Javascript. The calculation is not totaling for the department if the account is selected after the mileage is entered. 

Here is an example of my form. As you can see, the admin department total did not sum the second line when I selected the admin account after the mileage information. Is there a javascript I can use that will update the total prior to submission?

 

 

 

$(document).ready(function () 
{
$('.cf-table-block').on('blur', 'input', sumtotal);
function sumtotal() 
{ 
    var total = 0;
  	var admin=0
    var HearingSupervision=0
    var HearingCounseling=0
    var AudioSupport=0
    var VisionMulti=0
    var OM=0
    var SpeechLanguage=0
    var TherapyServices=0
    var OperationsMaintenance=0
    var HearingInterpreter=0
    var STEP=0
    var Inservice=0
    var HIProgram=0
    var HISummer=0
    var HearingTeaching=0
    var VisionTeaching=0
    var AdaptivePE=0
    var Autism=0
    var AssistiveTech=0
       
    

  	    
    
$('.cf-table-block tbody tr').each(function () {
var s = 0;
s = parseNumber($(this).find('.rate input').val()) * parseNumber($(this).find('.miles input').val())+ parseNumber($(this).find('.miscellaneous input').val());
      $(this).find('.subtotal input').val(s).change();

  total += parseNumber(s);
  
        if (($(this).find('.Account select').val() == "01-Admin"))
      {
        admin += parseNumber(s);
      }
 	    
        if (($(this).find('.Account select').val() == "04-Hearing Supervision"))
      {
        HearingSupervision += parseNumber(s);
      }
     
  		if (($(this).find('.Account select').val() == "05-Hearing Counseling"))
      {
        HearingCounseling += parseNumber(s);
      }
 		if (($(this).find('.Account select').val() == "06-Audio Support"))
      {
        AudioSupport += parseNumber(s);
      }  
        
        if (($(this).find('.Account select').val() == "07-Vision/Multi"))
      {
        VisionMulti += parseNumber(s);
      }
    
         if (($(this).find('.Account select').val() == "08-O/M"))
      {
        OM += parseNumber(s);
      }
      
          if (($(this).find('.Account select').val() == "09-Speech/Language"))
      {
        SpeechLanguage += parseNumber(s);
      }
      
          if (($(this).find('.Account select').val() == "10-Therapy Services"))
      {
        TherapyServices += parseNumber(s);
      }
         if (($(this).find('.Account select').val() == "16-Operations and Maintenance"))
      {
        OperationsMaintenance += parseNumber(s);
      }
         if (($(this).find('.Account select').val() == "17-Hearing Interpreter"))
      {
        HearingInterpreter += parseNumber(s);
      }
         if (($(this).find('.Account select').val() == "18-STEP"))
      {
        STEP += parseNumber(s);
      }
         if (($(this).find('.Account select').val() == "19-Inservice"))
      {
        Inservice += parseNumber(s);
      }
        if (($(this).find('.Account select').val() == "20-HI Program"))
      {
        HIProgram += parseNumber(s);
      }
        if (($(this).find('.Account select').val() == "21-HI Summer"))
      {
        HISummer += parseNumber(s);
      }
        if (($(this).find('.Account select').val() == "23-Hearing Teaching"))
      {
        HearingTeaching += parseNumber(s);
      }
        if (($(this).find('.Account select').val() == "24-Vision Teaching"))
      {
         VisionTeaching += parseNumber(s);
      }
        if (($(this).find('.Account select').val() == "26-Adaptive PE"))
      {
        AdaptivePE += parseNumber(s);
      }
        if (($(this).find('.Account select').val() == "29-Autism"))
      {
        Autism += parseNumber(s);
      }
         if (($(this).find('.Account select').val() == "30-Assistive Tech"))
      {
        AssistiveTech += parseNumber(s);
      }
       
  
      
});
       $('.total input').val(total).change();
  	   $('.admin input').val(admin).change();
       $('.HearingSupervision input').val(HearingSupervision).change();
       $('.HearingCounseling input').val(HearingCounseling).change();
  	   $('.AudioSupport input').val(AudioSupport).change();
	   $('.VisionMulti input').val(VisionMulti).change();
  	   $('.OM input').val(OM).change();
  	   $('.SpeechLanguage input').val(SpeechLanguage).change();
  	   $('.TherapyServices input').val(TherapyServices).change();
  	   $('.OperationsMaintenance input').val(OperationsMaintenance).change();
  	   $('.HearingInterpreter input').val(HearingInterpreter).change();
  	   $('.STEP input').val(STEP).change();
  	   $('.Inservice input').val(Inservice).change();
  	   $('.HIProgram input').val(HIProgram).change();
  	   $('.HISummer input').val(HISummer).change();
  	   $('.HearingTeaching input').val(HearingTeaching).change();
  	   $('.VisionTeaching input').val(VisionTeaching).change();
  	   $('.AdaptivePE input').val(AdaptivePE).change();
       $('.Autism input').val(Autism).change();
       $('.AssistiveTech input').val(AssistiveTech).change();
     
}
  

function parseNumber(n) {
var f = parseFloat(n); //Convert to float number.
return isNaN(f) ? 0 : f; //treat invalid input as 0;
}
});

Thank you!

0 0

Replies

replied on June 13, 2017 Show version history

You just need to change the on method to have multiple selectors which include the select.

$('.cf-table-block').on('blur', 'input,select', sumtotal);

 

0 0
You are not allowed to follow up in this post.

Sign in to reply to this post.