Esto puede sonar estúpido, pero escribí un código para convertir binario en un número normal. Tengo un botón que tienes que presionar que ejecuta toda la función. Sin embargo, sin hacer clic en el botón, se lanzó la función.
let button = document.getElementById("submit"); let binary; let result = document.createElement("h1"); result.className = "answer"; button.addEventListener("click", calc()); function calc(){ binary = document.getElementById("binary").value; result.textContent = "The Result is: " + parseInt(binary, 2); document.body.appendChild(result); console.log('here'); }Cuando cargo la página, el texto "El resultado es" ya está allí y cuando hago clic en él, no se registra en la consola ni cambia el valor. Esto puede ser estúpido, pero no puedo resolverlo, gracias de antemano.
El problema que vi en tu código es que llamaste a la función calc() en el método addEventListener, en su lugar, debes escribirlo así button.addEventListener("click", calc); , debe pasar calc y no calc() .
Utilizar este :
let button = document.getElementById("submit"); let binary; let result = document.createElement("h1"); result.className = "answer"; button.addEventListener("click",(e)=>{ e.preventDefault(); calc(); }); function calc(){ binary = 1000101; // get binary result.textContent = "The Result is: " + parseInt(binary, 2); document.body.appendChild(result); console.log('here'); } <button id ="submit"> Submit </button> <br>