2016-07-25 10 views
0

私はJSで小さなアプリケーションを構築していると私はそれで難しい:Javascriptをマルチステートメントの

私は範囲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(); 
}; 

});

数値が範囲外であってもわかるように、常に警告が表示されますが、numは大丈夫です。これは真実ではありません。私は何が間違っているのか分かりません。助けていただければ幸いです。さらに、ここではNumber.isNaN()関数を使用して、入力に意味のない入力を提供したいと考えています。私はこのような声明について考えた:

if(Number.isNaN(num) || num <0 || num > 100){...} 

私は私のミスは私よりも経験豊富な誰かのための明白かつ自明であることを推測します。

+1

これは)あなたの質問には無関係であるが、常に明示的に 'のparseInt(の2番目のパラメータを設定する必要があります':' parseInt(userInput、10); ' – Arnauld

答えて

0

あなたはcheckInputgetInputからの戻り値を渡す必要があります。

function initApp(){ 
    checkInput(getInput()); 
} 

サイドノート:機能宣言は(あなたが使用したもの)最後に;を必要としません。

1

あなたの質問にお答えするには、checkInput()に何も渡さないので、常に定義されておらず、undefined < 0 || undefined > 100は常に偽です。解決策は、そのようcheckInput()getInput()から返された値を渡すことです:

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>

ませんJavaScriptが必要。あなたはちょうどこのようにか、getInputによって返された値を与える必要が

0

;)

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); 
 
};

関連する問題