percentages coming out above 100%...

Hi All,

I have a buggy JS function(s).
I'm testing only on IE 5.0 and up Windows 2000 and XP

Three Important fields are:
TotalDone = current count of how many boxes are checked
TotalCases = static count of how many boxes there are on the page(this always shows correctly)
TotalComplete = percentage of total checkboxes checked

I have two functions, twoDecimals() and setTotalValuesOnClick().  These functions are called from an onclick event of a checkbox with the code...
var trueorfalse = this.checked;

Here they are:
JS header
//When a user clicks on a check box the total checked is incremented and the
//percentage is figured
function setTotalValuesOnClick(selectThis)
      //should be true or false
      var a = selectThis
      //tot = total amount completed so far
      var tot =      parseInt(document.forms[0].TotalDone.value);
      //static total number of check boxes used
      var totalnumberofChkBoxes = document.forms[0].TotalCases.value;
      //if it's checked
      if (a==true) {
            // increase total done by one.
            tot = tot + 1;
            document.forms[0].TotalDone.value = tot;
            //if total # check boxes is not 0.
            if (totalnumberofChkBoxes != 0){
                  //set %complete
                  document.forms[0].TotalComplete.value = twoDecimals((tot/totalnumberofChkBoxes)*100);
            else {document.forms[0].TotalComplete.value = "err";}
            tot = tot - 1;
            document.forms[0].TotalDone.value = tot;
            if (totalnumberofChkBoxes != 0){
                  document.forms[0].TotalComplete.value = twoDecimals((tot/totalnumberofChkBoxes)*100);
            else {document.forms[0].TotalComplete.value = "err";}

//rounds to two decimal places, passed in a number.
function twoDecimals(n) {
   var s = "" + Math.round(n * 100) / 100
   var i = s.indexOf('.')
   if (i < 0) return s + ".00"
   var t = s.substring(0, i + 1) + s.substring(i + 1, i + 3)
   if (i + 2 == s.length) t += "0"
   return t

Thanks for all input.  This one as it turns out is live as it was a rushed project.
Who is Participating?
moduloConnect With a Mentor Commented:
Closed, 300 points refunded.
Community Support Moderator
Experts Exchange
yoshi78Author Commented:
Solved.  It was another factor.  An explode function was used on the checkbox.  Default in the system we use.  Hence one of the entries was exploded and came out as being checked three times...Go figure.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.