Я знаю, что таких вопросов много, но после долгого чтения и просмотра моего кода я не понимаю, что я делаю неправильно. Я добавил addEventListener с целью не помещать «onclick» в мой html и обнаруживать изменения, но во время отображения значения, полученного в моем входе, ничего не отображается, и я не знаю почему, я подозреваю, что Вы не вводите ни одну из функций для преобразования. Мой код:
<div class="box-numero-decimal">
<h1>CONVERSOR DECIMAL</h1>
<div class="input-numero">
<input type="text" id="decimal" class="i-enable n-f">
</div>
<div class="box-boton">
<div class="row">
<div class="col-6 d-flex align-items-center">
<label class="m-0" for="decimal">Ingrese el valor <b>decimal</b></label>
</div>
<div class="col-6">
<button class="btn-style float-right n-f">calcular</button>
</div>
</div>
</div>
</div>
<div class="box-centrar">
<div class="box-conversor-gral">
<label class="etiqueta-max" for="r-binario">Binario</label>
<input type="text" id="binario" class="i-disabled field left n-f" value="">
<label class="etiqueta-max" for="r-octal">Octal</label>
<input type="text" id="octal"class="i-disabled field left n-f" readonly value="">
<label class="etiqueta-max" for="r-hexadecimal">Hexadecimal</label>
<input type="text" id="hexadecimal" class="i-disabled field left n-f" readonly value="">
</div>
</div>
Сценарий:
const decimalCon = {
binario : '0',
octal : '0',
hexadecimal : '0',
bandera : false,
};
var sumbitInput = document.getElementById('box-boton');
var binarioR = document.getElementById('binario');
var octalR = document.getElementById('octal');
var hexadecimalR = document.getElementById('hexadecimal');
if(sumbitInput){
sumbitInput.addEventListener("click", actualizar);
sumbitInput.addEventListener("change", actualizar);
}
function actualizar(){
const decimal = Number(document.getElementById('decimal').value);
if (decimal !== 0){
binarioR.value = convertirBinario(decimal);
octalR.value = convertirOctal(decimal);
hexadecimalR.value = convertirHexadecimal(decimal);
}
}
//Decimal a Binario
function convertirBinario(n){
let dividendo = n;
let binario = '';
while (dividendo != 0){
binario = (dividendo % 2) + binario;
dividendo = Math.floor(dividendo/2);
}
decimalCon.binario = binario;
}