el código siempre piensa que num1 es el número más pequeño, incluso si no es + si la segunda entrada es impar, pero la primera es par, entonces la salida es num1, el par más pequeño en lugar de "la segunda entrada es impar, corríjalo"
+También necesitaría una salida "Ambos números son iguales, corríjalo"
<body> <input id="num1"> <input id="num2"> <button onclick="myFunction()">Calculate</button> <p id="p"></p> </body> const p = document.getElementById("p") function myFunction() { var num1, num2; num1 = Number(document.getElementById("num1").value); num2 = Number(document.getElementById("num2").value); if(num1%2==0 >num2%2==0){ p.innerHTML=num2+" is the smaller even number" if(num1%2!=0){ p.innerHTML=num1+" first input is odd, correct it" } else { p.innerHTML=num2+" second input is odd, correct it" } } else{ p.innerHTML=num1+" is the smaller even number" } }Está comparando valores booleanos en esta declaración if:
if(num1%2==0 >num2%2==0)cambiar eso a
if(num1 > num2)En su versión, no aborda la posibilidad de que ambos sean impares y también está comparando dos valores booleanos.
function myFunction() { var num1, num2; num1 = Number(document.getElementById("num1").value); num2 = Number(document.getElementById("num2").value); if(num1%2!==0 && num2%2!==0){ p2.innerHTML = num1 + 'and' + num2 + 'are odd, correct them'; } else if(num1%2!==0 && num2%2===0){ p2.innerHTML = num1 + 'is odd, correct it'; } else if(num1%2===0 && num2%2!==0){ p2.innerHTML = num2 + 'is odd, correct it'; } else{ if(num1 < num2){ p2.innerHTML=num1+" is the smaller even number" } else if(num2 < num1) { p2.innerHTML=num2+" is the smaller even number"; } else { p2.innerHTML = 'They are the same number, correct one' } } }Aquí hay un código actualizado. No estoy seguro de cómo se ve su código fuente, así que lo estoy basando en mi propio ejemplo mínimo reproducible.
Pensé que sería más fácil de leer si primero lo dividías comprobando si ambos números son pares. Si no lo son, mira cuál ni siquiera lo es.
Si son pares, puede imprimir el más pequeño. Lo hice al principio por conveniencia, pero puede moverlo a la declaración else si lo prefiere.
function myFunction() { var num11, num2; var p = document.getElementsByTagName("P")[0] num1 = Number(document.getElementById("num1").value); num2 = Number(document.getElementById("num2").value); var smaller = num1 < num2 ? num1 : num2 if(num1%2!=0 || num2%2!=0){ if(num1%2!=0){ p.innerHTML=num1+" first input is not even, correct it" } else { p.innerHTML=num2+" second input is not even, correct it" } } else if (num1 === num2){ p.innerHTML="Both numbers are equal, correct it." } else { p.innerHTML=smaller+" is the smaller even number" } } <p></p> <input id="num1"/> <input id="num2"/> <button onclick="myFunction()">Run</button>