We help IT Professionals succeed at work.

JavaScript Math function is not working

vcbertini asked
Last Modified: 2013-12-07
I inherited a javaScript function that runs in one of our registration pages. The purpose of the function is that when someone checks a box or enters a number into one of the text fields, it is supposed to calculate the sum total and populate a "total" field at the bottom of the page. The function *seems* to work in IE, but not in Firefox and I can't seem to track down why. I'm not a big expert in JavaScript, but I know enough to get by. This code is ancient, so it's probably just some keyword that has been discontinued during the last 4 releases or so. Help!

The second function is just supposed to set a value in a text field. I'm not sure if it's the function itself, or how it's being called, but it doesn't work in either Firefox or IE.

An example of the way these functions are being called is as follows:
<input onClick="calcSum();setFoursome()" name="sponsoropp1" type="checkbox" id="sponsoropp1" title="7500" value="$7,500 Champion Level">
function calcSum() {
var tSum = parseInt(regForm.total.value);
var singles = parseInt(regForm.singles.value) * 275;
var dinnerseats50 = parseInt(regForm.dinnerseats50.value) * 50;
var donation = parseInt(regForm.donation.value);
var sponsoropp1=0;
var sponsoropp2=0;
var sponsoropp3=0;
var sponsoropp4=0;
var sponsoropp5=0;
var sponsoropp6=0;
var sponsoropp7=0;
if (regForm.sponsoropp1.checked) {
	var sponsoropp1 = parseInt(regForm.sponsoropp1.title);
if (regForm.sponsoropp2.checked) {
	var sponsoropp2 = parseInt(regForm.sponsoropp2.title);
if (regForm.sponsoropp3.checked) {
	var sponsoropp3 = parseInt(regForm.sponsoropp3.title);
if (regForm.sponsoropp4.checked) {
	var sponsoropp4 = parseInt(regForm.sponsoropp4.title);
if (regForm.sponsoropp5.checked) {
	var sponsoropp5 = parseInt(regForm.sponsoropp5.title);
if (regForm.sponsoropp6.checked) {
	var sponsoropp6 = parseInt(regForm.sponsoropp6.title);
if (regForm.sponsoropp7.checked) {
	var sponsoropp7 = parseInt(regForm.sponsoropp7.title);
tSum = Math.round((singles+sponsoropp1+sponsoropp2+sponsoropp3+sponsoropp4+sponsoropp5+sponsoropp6+sponsoropp7+dinnerseats50+donation)*100)/100;
regForm.sum_singles.value = singles;
regForm.sum_sponsoropp.value = sponsoropp1+sponsoropp2+sponsoropp3+sponsoropp4+sponsoropp5+sponsoropp6+sponsoropp7;
regForm.sum_dinnerseats50.value = dinnerseats50;
regForm.total.value = tSum;
function setFoursome() {
	if ((regForm.sponsoropp1.checked) || (regForm.sponsoropp2.checked) || 
	(regForm.sponsoropp3.checked) || (regForm.sponsoropp4.checked) || 
	(regForm.sponsoropp5.checked) || (regForm.sponsoropp6.checked)) {
	regForm.golfer1.value = "Enter full name";
	regForm.golfer2.value = "Enter full name";
	regForm.golfer3.value = "Enter full name";
	regForm.golfer4.value = "Enter full name";

Open in new window

Watch Question

HonorGodSoftware Engineer

Add this line after line 35 (i.e., tSum = ...) and we'll see what the values are, or if is failing before this point.
alert( 'singles       = ' + singles       + '\n' +
       'sponsoropp1   = ' + sponsoropp1   + '\n' +
       'sponsoropp2   = ' + sponsoropp2   + '\n' +
       'sponsoropp3   = ' + sponsoropp3   + '\n' +
       'sponsoropp4   = ' + sponsoropp4   + '\n' +
       'sponsoropp5   = ' + sponsoropp5   + '\n' +
       'sponsoropp6   = ' + sponsoropp6   + '\n' +
       'sponsoropp7   = ' + sponsoropp7   + '\n' +
       'dinnerseats50 = ' + dinnerseats50 + '\n' +
       'donation      = ' + donation      + '\n' +
       'tSum          = ' + tSum          )

Open in new window

This one is on us!
(Get your first solution completely free - no credit card required)
HonorGodSoftware Engineer

bugada, good catch.

Line 53 (the closing curly brace) should be move ahead of line 42 (the function setFourSome() line


Actually, I did move the bracket - it looked strange being embedded like that, and now it seems to be working. I kick myself if that was the actual problem.  I added the alert comment above and tested it. All the variables are coming back okay now.


Thank you. What a simple thing. I was looking for something more complex.

Gain unlimited access to on-demand training courses with an Experts Exchange subscription.

Get Access
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Empower Your Career
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions
Unlock the solution to this question.
Join our community and discover your potential

Experts Exchange is the only place where you can interact directly with leading experts in the technology field. Become a member today and access the collective knowledge of thousands of technology experts.

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.


Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.