2015-03-25 4 views
0

Так что в основном я создаю форму заявки на участие в спортзале. Базовая стоимость составляет 100 долларов США. Если выбрано жонглирование, стоимость будет увеличена на 50 долларов. Кроме того, базовая стоимость будет увеличиваться на 50 долларов, если «BMI» составляет> 25 и < = 30. Если «BMI» составляет> 30, он будет увеличиваться на 100 долларов вместо этого. Это мой код. Он не работает должным образом. Хотела бы помочь. Большое спасибо.Изменить значение поля ввода на основе выбранного элемента и другого значения

<!DOCTYPE html> 
    <html> 
    <head> 
    <title>UWS application form</title> 
    <link rel="stylesheet" href="Prac1Task2.css" /> 
    </head> 
    <body> 
    <form> 
    <fieldset> 
    <legend>Fitness Details</legend> 
Favourite Activities: <br/> 
    <input type="checkbox" name="activity" value="cycling" id="cycling"><label for="cycling">Cycling</label>  
    <input type="checkbox" name="activity" value="50" id="juggling" onchange="update(this);"><label for="juggling">Juggling</label>  
    <br/> 
    <br/> 
    <label for="height">What is your height &#40;Meters&#41;</label><br/> 
    <input type="number" name="height" id="height" class="input" onchange="getBMI()"> 
    <br/> 
    <label for="weight">What is your weight? &#40;kg&#41;</label><br/> 
    <input type="number" name="weight" id="weight" class="input" onchange="getBMI()"> 
    <br/> 
    <label for="bmi">BMI:</label><br/> 
    <input type="number" name="bmi" id="bmi" class="input" value="" readonly> 
    <script> 
     function getBMI() 
     { 
      var height = document.getElementById("height").value; 
      var weight = document.getElementById("weight").value; 
      document.getElementById("bmi").value = (weight/height)/height; 
      var bmi = document.getElementById("bmi"); 
      var price = document.getElementById("price").value; 
      if (bmi.value > 25 && bmi.value <= 30) 
      { 

       parseInt(price.value) += parseInt(50); 
      document.getElementById('price').value = price.value; 
      } 
      else if (bmi.value > 30) 
      { 
       document.getElementById("price").value = document.getElementById("price").value + 100; 

      } 
    } 
    </script> 

    </fieldset> 
    <br/> 
    <fieldset> 
    <legend>Application Details</legend> 
    Date of Application:<br/> 
    <input class="input" id="date" name="date" readonly /> 
    <script> 
    var timetime = new Date(); 
    document.getElementById("date").value = (timetime.getDate() + "/" + (timetime.getMonth() + 1) 
       + "/" + timetime.getFullYear()); 
    </script> 
<br/><br/> 
Cost of Application: <br/> 
$<input type="number" class="input" id="price" name="price" step="0.01" value="100" readonly /> 
    <script> 
    var total = 100; 
    function update(feature) { 

     if(feature.checked == true){ 

      total += parseInt(feature.value); 
     document.getElementById('price').value = total; 
     } 

     if(feature.checked == false){ 

      total -= parseInt(feature.value); 
      document.getElementById('price').value = total; 
      } 
    } 
    </script> 
    </fieldset> 
    <br/> 
    <input type="submit" value="Submit" class="button"> 
    </form> 
    </body> 
    </html> 
+0

, если ваших члены тренажерного зала может быть только 1 или 2 метром, я предложил бы добавить 'шага =«0,01»' к вашей «высоте» поле. – Xufox

ответ

0

Вы еще не указали точный вопрос, с которым сталкиваетесь. Тем не менее, я думаю, что должна быть какая-то проблема с этой строкой кода.

parseInt(price.value) += parseInt(50); 

parseInt() - это функция, и вы не можете присвоить ей значения.

Это должно быть нечто вроде этого

price.value = parseInt(price.value) + parseInt(50); 

Также price.value не является правильной ссылки, потому что вы назначаете document.getElementById("price").value; к нему. Таким образом, вы должны использовать цены вместо price.value

+0

при вычислении ИМТ. общая сумма составит $ 10050 вместо $ 150 –

+0

100 + 50 = 10050 ... это произойдет, если вы не правильно придумаете переменные – Andromeda

+0

Если вы не уверены в том, что происходит внутри кода, используйте предупреждения на каждом этапе расчета и рисунке где именно проблема – Andromeda

Смежные вопросы