function validateForm() { var age = document.getElementById('age'); var cci = document.getElementById('cci'); if (age.value < 0 || cci.value < 0) { alert('Значения полей не могут быть отрицательными.'); return false; } return true; } function preventNegativeInput(event) { if (event.target.value < 0) { event.target.value = Math.abs(event.target.value); } } // Добавление обработчиков событий для числовых полей document.getElementById('age').addEventListener('input', preventNegativeInput); document.getElementById('cci').addEventListener('input', preventNegativeInput); function calculateRisks() { validateForm(); let ageElement = document.getElementById("age"); let age = parseInt(ageElement.value); if (age < 0) { alert("Возраст не может быть отрицательным."); return; } let asaCategory = parseInt(document.getElementById("asa").value); let cciCategory = parseInt(document.getElementById("cci").value); let treatmentMethod = document.querySelector('input[name="treatment_method"]:checked').value; const formParams = { age: age, asaCategory: asaCategory, cciCategory: cciCategory, treatmentMethod: treatmentMethod, }; const result = calculateRiskValues(formParams); displayResults(result, treatmentMethod); } document.getElementById('riskForm').addEventListener('submit', function (event) { event.preventDefault(); // отменяет событие отправки формы // validateAndCalculate(event); }); function validateAndCalculate(event) { const ageElement = document.getElementById("age"); const age = ageElement.value; if (age === '' || age <= 0) { ageElement.focus(); return; } calculateRisks(); } function displayResults(result, treatmentMethod) { let resultContainer = document.getElementById("results"); resultContainer.innerHTML = result; let resultsColumn = document.getElementById("resultsColumn"); // Adjust form column width first, then show results column let formColumn = document.getElementById("formColumn"); formColumn.classList.remove("col-lg-12"); formColumn.classList.add("col-lg-4"); setTimeout(() => { resultsColumn.classList.remove("d-none"); setTimeout(() => { resultsColumn.classList.add("visible"); }, 10); // Плавная анимация }, 500); // Время должно совпадать с transition в CSS // Set treatment image let treatmentImage = document.getElementById("treatmentImage"); switch (treatmentMethod) { case "1": treatmentImage.src = "images/endovascular_surgery.jpg"; break; case "2": treatmentImage.src = "images/microsurgery.png"; break; case "3": default: treatmentImage.src = "images/common.png"; break; } } function showInfo(message) { alert(message); } function showImage(imagePath) { let img = new Image(); img.src = imagePath; let text = window.open(""); text.document.write(img.outerHTML); } function showInfoLink(link, text) { window.open(link, '_blank'); }