2016-07-25 56 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函數的'第二個參數() ':'parseInt(userInput,10);' – Arnauld

回答

0

您需要從getInput的返回值傳遞到checkInput

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

邊注:功能聲明(你使用什麼)不要在結尾處不需要;

1

要回答你的問題,你沒有任何傳遞給checkInput(),所以它總是沒有定義,並且undefined < 0 || undefined > 100總是錯誤的。該解決方案是從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>

沒有JavaScript的要求。

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