如何正确检查输入是否不等于零

时间:2017-04-07 14:26:03

标签: javascript

我有简单的代码,在输入用户输入数字,它必须打印数字,直到输入不等于零。

问题是当我提交价值时,页面停止响应

以下是我的代码的样子:

 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>

2 个答案:

答案 0 :(得分:2)

input的value属性是一个字符串。

您必须与正确的类型进行比较:

while (input !== '0')

while (input != 0)

-----编辑-----

考虑将while更改为if,否则会无限期地打印任意数字0。

&#13;
&#13;
 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;
&#13;
&#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);
}