Сейчас делаю учебный проект в виде приложения на HTML css js для последующей компиляции в exe. Но при тестировании в браузере возникает проблема: если ввести сначала цифры в поле (нужное количество вещества на кв м), а потом выбрать пункт из выпадающего списка, то всё работает, а если наоборот, то нет. Вот ссылка на репозиторий (файл script.js)
https://github.com/Leonid-777/CalcFertilizerWeb
Вот код
window.addEventListener('DOMContentLoaded', function() {
let nitrogenSelect = document.getElementById('nitrogen_select'),
phosphorusSelect = document.getElementById('phosphorus_select'),
potassiumSelect = document.getElementById('potassium_select'),
nitrogenBtn = document.querySelectorAll('.compute')[0],
phosphorusBtn = document.querySelectorAll('.compute')[1],
potassiumBtn = document.querySelectorAll('.compute')[2],
nitrogenInput = document.getElementsByTagName('input')[0],
phosphorusInput = document.getElementsByTagName('input')[1],
potassiumInput = document.getElementsByTagName('input')[2],
nitrogen = document.getElementById('nitrogen'),
phosphorus = document.getElementById('phosphorus'),
potassium = document.getElementById('potassium'),
total = 0,
nitrogenValue = 0;
nitrogen.innerHTML = '0 гр';
phosphorus.innerHTML = '0 гр';
potassium.innerHTML = '0 гр';
nitrogenInput.oninput = function() {
if(typeof(nitrogenInput.value) != '' || typeof(nitrogenInput.value) != "string") {
total = nitrogenInput.value * 100;
} else {
nitrogen.innerHTML = 'Ошибка!';
}
nitrogenSelect.oninput = function() {
let a = total;
nitrogenValue = Math.round(a/this.options[this.selectedIndex].value) + ' гр';
};
};
nitrogenBtn.onclick = function() {
nitrogen.innerHTML = nitrogenValue;
};
phosphorusInput.oninput = function() {
if(typeof(phosphorusInput.value) != '' || typeof(phosphorusInput.value) != "string") {
total = phosphorusInput.value * 100;
} else {
phosphorus.innerHTML = 'Ошибка!';
}
phosphorusSelect.oninput = function() {
let b = total;
phosphorusValue = Math.round(b/this.options[this.selectedIndex].value) + ' гр';
};
};
phosphorusBtn.onclick = function() {
phosphorus.innerHTML = phosphorusValue;
};
potassiumInput.oninput = function() {
if(typeof(potassiumInput.value) != '' || typeof(potassiumInput.value) != "string") {
total = potassiumInput.value * 100;
} else {
potassium.innerHTML = 'Ошибка!';
}
potassiumSelect.oninput = function() {
let b = total;
potassiumValue = Math.round(b/this.options[this.selectedIndex].value) + ' гр';
};
};
potassiumBtn.onclick = function() {
potassium.innerHTML = potassiumValue;
};
});