todos, tengo algunos problemas con la obtención de datos y la visualización de mensajes en la carga inicial, así como cuando cambio parte del valor del archivo de entrada. La idea aquí es mostrar un mensaje específico en dos casos después de hacer algunos cálculos.
const potrosnja = document.getElementById('potrosnja'); const nagib = document.getElementById('nagib'); const input = document.querySelectorAll('input[type="number"]'); const submitBtn = document.getElementById('submitBtn'); const poruka = document.getElementById('poruka'); let str = document.querySelector('input[name="strane-sveta"]:checked').value; let godisnjaPotrosnja = parseInt(potrosnja.value); let nagibKrovaInput = nagib.value; //On button submit it fetches data and calculate the value needed for yearly consumption of energy //fetching data async function dataFetch(){ let response = await fetch('./csvjson.json') let data = await response.json(); data.map(strana => { strana.strana.map((item, i) => { try { if(item == str && nagibKrovaInput == strana.nagib) { let result = Math.ceil(godisnjaPotrosnja / strana.vrednost[i]); console.log("try works") poruka.innerHTML = `You need <span class="kw">${result}</span>` } } catch(err) { poruka.innerHTML = `Please fill required fields.` console.log(err) } }) }) } //event listeners submitBtn.addEventListener('click', () => { dataFetch() console.log('clicked') input.forEach(input => { if(input.value == ''){ input.classList.add("active"); } }) })Puedo ver que el problema está dentro de la función de prueba, la condición similar no se trata en la carga inicial y tengo que volver a cargar la página para que funcione. ¿Alguien puede ayudarme a entender cuál es el problema?
Ok, encontré la solución... Lo primero que tengo que hacer es verificar si nagibKrovaInput == strana.nagib, después de que sea verdadero, comparé si el elemento indexOf es igual a str y después de que sea verdadero, mostrará algo . También cambié al hacer clic en el botón para enviar valores a la función de datos como argumentos y resolvió el problema. Tnx por ayuda.