javascript应该将输入转换为base2并将其显示在输出中。我很困惑为什么输出" o"与输入" num"完全相同。 我不明白为什么这不起作用。我知道数据正确传递,因为如果我在函数中放入简单的数学运算,那么输出就可以了。但是,当我尝试进行转换时,它将无法正常工作。
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
<title>Base Converter</title>
<meta charset = "utf-8">
<script>
function Dec2Bin(val)
{
var num = val;
var n = num.toString(2);
convert.o.value = n;
}
</script>
</head>
<body>
<center>
<div class="banner"> <!--banner area-->
Convert from base 10 to base 2
</div>
<div class="body"> <!--function area-->
Please choose a number between 1 and 1,024
<form name="convert" class="alignment">
<input type="number" name="num">
<input type="button" value="Convert" onclick="Dec2Bin(num.value)">
<output name="o"></output>
</form>
</div>
</body>
答案 0 :(得分:1)
这是因为num
的值是一个字符串。因此,对字符串执行toString
并不会做任何事情。您只需将num
更改为数字即可。您可以通过执行var num = +val
或var num = parseInt(val)
:
function Dec2Bin(val)
{
var num = +val;
var n = num.toString(2);
convert.o.value = n;
}
&#13;
<form name="convert" class="alignment">
<input type="number" name="num">
<input type="button" value="Convert" onclick="Dec2Bin(num.value)">
<output name="o" value=""></output>
</form>
&#13;
注意:小心依赖DOM中的name
项作为全局数据。因为它可能导致具有相同名称或其他浏览器的多个项目出现问题。您可能希望分配id
并使用document.getElementById()
。
答案 1 :(得分:0)
在while
循环中,您会在int > 0
时循环,但int
永远不会更改。因此,它将永远循环(或0次)。
此外,int
在技术上是JavaScript中的保留字,因此您应该避免使用它。像num
这样的东西是合适的。