Recientemente comencé un curso de Javascript, por lo que todavía estoy descubriendo cómo hacer mejor las cosas básicas. Mi objetivo es tener 2 menús de selección, ambos con las mismas monedas y su valor, y convertirlos entre ellos.
Por ejemplo, si EUR del menú A se combina con EUR del menú B, será 1 * 1. USD será 1 * 1,06, y así sucesivamente, pero esto solo me permite convertir de euro a otra cosa.
Traté de averiguar si esto era posible con un bucle. ¿Funcionaría eso de alguna manera?
Editar: en el HTML, proporcionado por mstephen19, muestro el problema de no saber cómo usar estos 2 buzones para convertir múltiples monedas.
//jquery-3.6.0.min.js const inputValue = Number(document.getElementById("inputVal").value); console.log(selectedText); console.log(selectedText2); function getResult(){ const selectedText = $('#menuA :selected').text(); const selectedText2 = $('#menuB :selected').text(); let result; if (selectedText === 'option1' && selectedText2 === 'option1'){ result = inputValue * 1; console.log(result); } else if (selectedText === 'option1' && selectedText2 === 'option2'){ result = inputValue * 0.1; console.log(result); } else if (selectedText === 'option1' && selectedText2 === 'option3'){ result = inputValue * 0.01; console.log(result); } else if (selectedText === 'option2' && selectedText2 === 'option1'){ result = inputValue * 5; console.log(result); } document.getElementById('resultbox').value = result; } <form> <input name="number" type="number" /> <select name="first" id="first"> <option value="1">EUR</option> <option value="1.06">USD</option> <option value="1.37">CAD</option> </select> <select name="second" id="second"> <option value="1">EUR</option> <option value="1.06">USD</option> <option value="1.37">CAD</option> </select> </form> <div id="resultBox"></div>No estoy seguro de cómo está calculando estos multiplicadores ( 1, 5, 0.5, etc. ), pero creo que debería usar atributos de datos/atributos de valor y calcular su multiplicador usándolos en lugar de hacer un montón de si... declaraciones .else.
const form = document.querySelector('form'); const resultBox = document.querySelector('div#resultBox'); const handleChange = () => { // Grab the data from the form const data = Object.fromEntries([...new FormData(form)]); // If input number is NaN, just do nothing if (isNaN(+data.number)) return; // Calculate what the multiplier should be const multiplier = +data.first * +data.second; // Calculate the result const result = data.number * multiplier; resultBox.textContent = result.toFixed(2); }; // Run the function every time the form is changed, // or the input changes form.addEventListener('change', handleChange); form.addEventListener('keyup', handleChange); <form> <input name="number" type="number" /> <select name="first" id="first"> <option value="1">Option One</option> <option value="5">Option Two</option> <option value="10">Option Three</option> </select> <select name="second" id="second"> <option value="1">Option One</option> <option value="0.1">Option Two</option> <option value="0.01">Option Three</option> </select> </form> <div id="resultBox"></div>