我正在用JS构建一个小应用程序,我发现很难:
我想从用户输入0-100范围内的整数。如果它不是int我将其解析为int。然后我想把这个数字用于checkNum函数,并且出现问题。 让我粘贴我的代码:
$(function () {
initApp();
function getInput(){
var userInput = window.prompt("Input number from range 0-100");
var num = parseInt(userInput);
return num;
};
function checkInput(num){
if( num < 0 || num > 100){
displayError();
}
else{
alert('num is ok');
}
};
function displayError(){
alert("error");
};
function initApp(){
getInput();
checkInput();
};
});
正如你所看到的,即使我把数字放在范围之外,总会有警告说数字是好的 - 这是不正确的。我不知道我做错了什么。我会感激任何帮助。更重要的是,我想在这里放置函数Number.isNaN()以在输入中提供无意义的输入。我想到了这样的陈述:
if(Number.isNaN(num) || num <0 || num > 100){...}
我想我的错误对于比我更有经验的人来说显而易见且微不足道。
答案 0 :(得分:1)
要回答您的问题,您不会将任何内容传递给checkInput()
,因此它始终未定义,undefined < 0 || undefined > 100
始终为false。解决方案是将返回的值从getInput()
传递给checkInput()
,如下所示:
function initApp(){
var value = getInput();
checkInput(value);
}
要回答您的目标:使用<input type="number">
并让浏览器为您完成工作。
<form>
<input type="number" min="0" max="100" step="1" />
<button>Try to submit!</button>
</form>
&#13;
无需JavaScript。
答案 1 :(得分:0)
您需要将getInput
的返回值传递给checkInput
:
function initApp(){
checkInput(getInput());
}
附注:功能声明(您已经使用过的)最后不需要;
。
答案 2 :(得分:0)
你只需要像这样给出getInput返回的值;)
initApp();
function getInput(){
var userInput = window.prompt("Input number from range 0-100");
var num = parseInt(userInput);
return num;
};
function checkInput(num){
if( num < 0 || num > 100){
displayError();
}
else{
alert('num is ok');
}
};
function displayError(){
alert("error");
};
function initApp(){
var value = getInput();
checkInput(value);
};
&#13;