Solved

percentages coming out above 100%...

Posted on 2004-04-27
2
148 Views
Last Modified: 2010-04-06
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;
setTotalValuesOnClick(trueorfalse);

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";}
      }
      else{
            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.
Yoshi
0
Comment
Question by:yoshi78
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 1

Author Comment

by:yoshi78
ID: 10950240
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.
0
 

Accepted Solution

by:
modulo earned 0 total points
ID: 10950347
Closed, 300 points refunded.
modulo
Community Support Moderator
Experts Exchange
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
RSS Feeds--IE 13 195
How to orderly load jquery libs with requireJS? 3 96
Lines Not Lining Up 2 98
What does GoogleTagMgr javascripts below do 5 87
I found this questions asking how to do this in many different forums, so I will describe here how to implement a solution using PHP and AJAX. The logical flow for the problem should be: Write an event handler for the first drop down box to get …
Browsers only know CSS so your awesome SASS code needs to be translated into normal CSS. Here I'll try to explain what you should aim for in order to take full advantage of SASS.
The viewer will receive an overview of the basics of CSS showing inline styles. In the head tags set up your style tags: (CODE) Reference the nav tag and set your properties.: (CODE) Set the reference for the UL element and styles for it to ensu…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

751 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question