Click here to Skip to main content
15,888,461 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
If one of the ifs fits the given interval I want it to equal to 1 and add them. Male and female are radio type button so only one of them, can be checked. When I add console.log shows only 0 or 3. For example, If lek and fib fit the given interval I want my output to be 2. I am new to JavaScript and I have not a lot of experience with for loop. Any help is appreciated. Thanks in advance.

What I have tried:

HTML
<body>
  <div id="criteria">

<label for="gender">Male</label><input id="male" type="radio" name="gender" autocomplete="off">

<label for="gender">Female</label><input id="female" type="radio" name="gender" autocomplete="off">

<label for="e">E</label><input id="e" type="number" name="e" autocomplete="off">

<label for="age">Age</label><input id="age" type="number" name="age" autocomplete="off">

<label for="lek">Lek</label><input id="lek" type="number" name="lek" autocomplete="off">

<label for="fib">Fib</label><input id="fib" type="number" name="fib" autocomplete="off">

</body>


JavaScript
function criteria() {
  var asd = 0;
  var subtotal = 0;
  var genderMale = document.getElementById('male');
  var genderFemale = document.getElementById('female');
  var age = parseFloat(document.getElementById('age').value);
  var e = parseFloat(document.getElementById('e').value);
  var lek = parseFloat(document.getElementById('lek').value);
  var fib = parseFloat(document.getElementById('fib').value);

  for ( var j = 0; j < 3 ; j++) {
  if (genderMale.checked && age < 50 && e >= 15 ) {
     asd = 1;
  } else if (genderMale.checked && age >= 50 && age <= 85 && e >= 20) {
     asd = 1;
  } else if (genderFemale.checked && age < 50 && e >= 20) {
     asd = 1;
  } else if (genderFemale.checked && age >= 50 && age <= 85 && e >= 30 ) {
     asd = 1;
  } else if (lek > 11 ) {
    asd = 1;
  } else if (fib > 400) {
    asd = 1;
  }
  subtotal += asd;
}
var total = +subtotal;
console.log(total);

}

document.getElementById('criteria').addEventListener('change', criteria);
Posted
Updated 14-Sep-17 22:35pm

1 solution

Why do you feel that you need a for loop? It looks like you just need:
JavaScript
if (genderMale.checked && age < 50 && e >= 15 )
{
    subtotal += 1;
}

if (genderMale.checked && age >= 50 && age <= 85 && e >= 20)
{
    subtotal += 1;
}

if (genderFemale.checked && age < 50 && e >= 20)
{
    subtotal += 1;
}

if (genderFemale.checked && age >= 50 && age <= 85 && e >= 30 )
{
    subtotal += 1;
}

if (lek > 11 )
{
    subtotal += 1;
}

if (fib > 400)
{
    subtotal += 1;
}
 
Share this answer
 
Comments
Member 13402731 15-Sep-17 4:43am    
I was going to compare It with another value, so I thought I needed for loop. Thanks for quick answer.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900