Así que soy bastante nuevo en Javascript y estoy trabajando en un código que convierte los números decimales en números binarios. Sin embargo, cuando ejecuto este programa, parece que no puedo obtener el resultado que estoy buscando. Lo mejor que he hecho es hacer que mi función muestre un número exacto que ya está dentro de la función, cuando estoy tratando de obtener una salida que se genera a partir de cualquier número ingresado en el cuadro de texto. No estoy completamente seguro de dónde me estoy equivocando con esto. Siento que hay algo que claramente me estoy perdiendo, pero parece que no puedo entender exactamente qué es. He estado usando codecademy y w3schools para obtener más conocimiento de JavaScript, pero si alguien tiene otros recursos que los ayudaron cuando comenzaron a programar, ¡sería genial!

<!DOCTYPE html>
<html>
<body>

<p>Convert from Decimal to Binary:</p>

<form method = "post">

<p id = "demo">

<label for="decNum"></label>
    <input name="decNum" type="text">

<button onclick="toBinary()">Enter</button>

</p>

</form>

<script>
function toBinary() {
    document.getElementById("demo").innerHTML =
    parseInt(num,10).toString(2); 
}

</script>

</body>
</html>
0
Ana 1 mar. 2018 a las 03:54

3 respuestas

La mejor respuesta

Hay algunas cosas que cambiaría. En primer lugar, mantendría elementos no formales fuera del formulario. El problema principal es que num no tiene un valor, pero para asegurarse de que funcione, también querrá tomar el evento y usar event.preventDefault () para asegurarse de que no envíe el formulario. Tratar:

<!DOCTYPE html>
<html>
<body>
<p>Convert from Decimal to Binary:</p>
<form method="post">
  <label for="decNum"></label>
  <input id="field" name="decNum" type="text">
  <button onclick="toBinary(event)">Enter</button>
</form>
<p id="demo"></p>
<script>
function toBinary(event) {
    event.preventDefault();
    var value = document.getElementById('field').value;
    document.getElementById("demo").innerHTML =
    parseInt(Number(value), 10).toString(2);
}
</script>
</body>
</html>
0
jens 1 mar. 2018 a las 01:03

No estás definiendo num.

Tómelo de la entrada como tal:

function toBinary() {
    const num = document.getElementById("textInput").value;
    document.getElementById("demo").innerHTML = parseInt(Number(num),10).toString(2); 
}
<p id = "demo"></p>
<label for="decNum"></label>
<input name="decNum" type="text" id="textInput"> 
<button onclick="toBinary()">Enter</button>
0
jmealy 1 mar. 2018 a las 01:07

Es porque num no tiene un valor.

Prueba esto:

<p>Convert from Decimal to Binary:</p>

<form method = "post">

<p id = "demo">

<label for="decNum"></label>
    <input name="decNum" type="text" id="decNum">

<button onclick="toBinary()">Enter</button>
</p>


</form>

<script>
function toBinary() {
    var num = document.getElementById("decNum").value;
    document.getElementById("demo").innerHTML =
    parseInt(num, 10).toString(2); 
}

</script>
1
Jeremiah Cabigting 1 mar. 2018 a las 01:00