Ваша функция displaymessage
Функция (которая может быть написана в случае верблюда displayMessage
, как в общих обозначениях Javascript) не вызывается должным образом. Чтобы вызывать эту функцию каждый раз при отправке формы, вы также должны убедиться, что вы захватываете event
и предотвращаете ее обновление страницы в том виде, в каком она есть по умолчанию в элементе <form>
html:
document.getElementById('assessment').addEventListener("submit", function(event) {
event.preventDefault();
displaymessage();
});
Также удалите эту строку из файла Calculate.js:
document.getElementById("displaymessage").submit()
и удалите прослушиватель onsubmit из кнопки ввода, он избыточен:
<p><input type="submit" name="calculate" value="Calculate" id="calculate"></p>
убедившись, что идентификатор имеет кавычки вокруг значения: id="calculate"
Наконец, вы можете получить значения risk1
и risk2
путем сохранения значений и имен из всех радиоэлементов и сортировки их потом:
первый шаг : Инициализируйте две переменные risk1
и risk2
в верхней части вашего файла calc.js:
var risk1, risk2;
второй шаг : отредактируйте вашу calculateTotal
функцию следующим образом:
function calculateTotal() {
var objectArray = []; // initialise empty array
var total = 0;
for (i = 0; i < radios.length; i++) {
if (radios[i].type == 'radio' && radios[i].checked) {
//save the values and names of the radio buttons into an array of objects
objectArray.push({
value: Number(radios[i].value),
name: radios[i].name
});
total += Number(radios[i].value);
}
}
//sorting the array ascendingly
objectArray.sort(function(a, b){return a.value - b.value});
// getting the name property of the last two values of the array that are the highest in value
risk1 = objectArray[objectArray.length - 1].name;
risk2 = objectArray[objectArray.length - 2].name;
return total;
}
- третий шаг : убедитесь, что вы правильно отображаете сообщение:
if (score < 15) {
message = "Your results show that you currently have a low risk of developing diabetes"
} else if (score > 25) {
message = "Your results show that you currently have a high risk of developing diabetes. Your main risk factors are your " + risk1 + " and your " + risk2 + ". We advise that you contact the Health Authority to discuss your risk factors as soon as you can. Your main risk are " + risk1 + " and " + risk2;
} else {
message = "Your results show that you currently have a medium risk of developing diabetes"
}