我有简单的代码,在输入用户输入数字,它必须打印数字,直到输入不等于零。
问题是当我提交价值时,页面停止响应
以下是我的代码的样子:
window.onload = function() {
var btn = document.getElementsByClassName('btn')[0];
function printInput() {
var output = document.getElementsByClassName('output')[0];
var input = document.getElementsByClassName('input')[0].value;
while(input !== 0) {
var input = document.getElementsByClassName('input')[0].value;
output.innerHTML += input+'<br>';
}
}
btn.addEventListener('click', printInput);
}
<input type="text" class="input" maxlength="1">
<button class="btn">Submit</button>
<div class="output"></div>
答案 0 :(得分:2)
input的value属性是一个字符串。
您必须与正确的类型进行比较:
while (input !== '0')
或
while (input != 0)
-----编辑-----
考虑将while
更改为if
,否则会无限期地打印任意数字0。
window.onload = function() {
var btn = document.getElementsByClassName('btn')[0];
function printInput() {
var output = document.getElementsByClassName('output')[0];
var input = document.getElementsByClassName('input')[0].value;
if(input !== '0') {
var input = document.getElementsByClassName('input')[0].value;
output.innerHTML += input+'<br>';
}
}
btn.addEventListener('click', printInput);
}
&#13;
<input type="text" class="input" maxlength="1">
<button class="btn">Submit</button>
<div class="output"></div>
&#13;
答案 1 :(得分:0)
您需要进行两项更改
a0
属性从type
更改为text
number
更改为while
<强>演示强>
if
window.onload = function()
{
var btn = document.getElementsByClassName('btn')[0];
function printInput()
{
var output = document.getElementsByClassName('output')[0];
var input = document.getElementsByClassName('input')[0].value;
if (input !== 0)
{
var input = document.getElementsByClassName('input')[0].value;
output.innerHTML += input + '<br>';
}
}
btn.addEventListener('click', printInput);
}