Я работаю над созданием веб-сайта, который может переводить число с основанием 10 в двоичное для получения дополнительной оценки в классе, который я беру.
URL моего веб-сайта: http://loganf.tynken.com. Моя цель состоит в том, чтобы пользователь вводил число в форму, чтобы это число стало строкой в теге <h4> и использовалось JavaScript, чтобы взять строку, сделать ее числом, а затем использовать дополнительный код для отображения двоичное число на экране.
У меня проблемы с введением строки в число.
Показанный здесь код JavaScript теперь является моим финальным продуктом, но это способ попытаться заставить число появиться.
var base10, base2, v2_0, v2_1, v2_2, v2_3, v2_4, v2_5, v2_6, v2_7,
v2_8, v2_9, v2_10, v2_11, v2_12;
base10 = document.getElementById('base10');
base2 = document.getElementById('base2');
v2_0 = 1;
v2_1 = 2;
v2_2 = 4;
v2_3 = 8;
function assignvarbinaryvalue() {
var binaryNumber = Number(base10);
var newEl = document.createElement('h4');
var newText = document.createTextNode(binaryNumber);
newEl.appendChild(newText);
var position = document.getElementById('binaryID');
position.appendChild(newEl);
}<h1>Binary Translator</h1>
<p><div id = "base10"><?php echo $_GET['base10']; ?></div><p id = "binaryID"></p></p>Не связано, но почему у вас h4, идущий после h1? Не используйте заголовки из-за того, как они отображают шрифт, используйте их, потому что вам нужны разделы определенного ранга.
Я не использую хром. Спасибо за совет по упрощению вещей.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если вы хотите преобразовать строку в число, вы можете просто использовать функцию javascript
parseInt()
Это тоже ничего не изменило. Тем не менее, спасибо за вашу помощь.
Вы не получаете значение:
var base10, base2, v2_0, v2_1, v2_2, v2_3, v2_4, v2_5, v2_6, v2_7, v2_8, v2_9, v2_10, v2_11, v2_12;
base10 = document.getElementById('base10');
base2 = document.getElementById('base2');
v2_0 = 1;
v2_1 = 2;
v2_2 = 4;
v2_3 = 8;
v2_4 = 16;
//v2_5 = 32;
//v2_6 = 64;
//v2_7 = 128;
//v2_8 = 256;
//v2_9 = 512;
//v2_10 = 1024;
//v2_11 = 2084;
//v2_12 = 4096;
function assignvarbinaryvalue() {
var binaryNumber = parseInt(base10.innerHTML);
var newEl = document.createElement('h4');
var newText = document.createTextNode(binaryNumber);
newEl.appendChild(newText);
var position = document.getElementById('binaryID');
position.appendChild(newEl);
}
assignvarbinaryvalue()
Это все еще не работает. Как вы думаете, может быть другая проблема? Спасибо!
Также я видел вашу демонстрацию - вы тоже не вызываете свою функцию. Обновленный ответ с полным кодом.
Ой. Извините. Это все еще не действует.
var base10 = document.getElementById('base10');
var base2 = document.getElementById('base2');
document.getElementById('submit').onclick=function() {
var number=parseInt(base10.value);
base2.value=decimalToBinary(number);
}
function decimalToBinary(n){
var binaryNumberStr = "";
var binaryNumber=0;
var step=0;
while (Math.pow(2, step)<n)
{
step+=1;
}
for(var i=step; i>=0; i--){
var c=Math.floor(n/Math.pow(2, i))
n-=Math.pow(2, i)*c;
binaryNumber+=Math.pow(2, i)*c;
binaryNumberStr+=c;
}
//binaryNumberStr+=(n-binaryNumber)
return binaryNumberStr;
}<p>Number:</p>
<input type = "text" id = "base10" name = "base10" size = "15" maxlength = "30">
<input type = "submit" id = "submit" name = "submit" value = "submit">
<input type = "text" id = "base2" name = "base2" disabled size = "15" maxlength = "30">
Я мог бы возразить по многим вещам. Однако я предлагаю вам немного упростить ситуацию, например, может быть, для начала нужно перейти только с 2 до 4-го. Разбейте его и посмотрите, в чем вы ошибаетесь. Вы пользуетесь инструментами разработчика Chrome и ищите в консоли какие-либо ошибки?