2016-01-11 44 views
1

如果輸入的最後一個數字後面有空格,程序就會中斷。如果輸入空格,我該如何阻止函數中斷?我試過$ .trim,但無法弄清楚如何讓它工作。也試過一個if/else語句如何驗證用戶輸入?

function calculate() { 
 
    var numInput = document.getElementById("qty").value; 
 
    var numArray = numInput.split(" ").map(function(t) { 
 
     return parseInt(t); 
 
    }); 
 

 
    var minValue = Math.min.apply(null, numArray); 
 
    var maxValue = Math.max.apply(null, numArray); 
 
    var sumValue = numArray.reduce(function(previous, current) { return previous + current }); 
 
    var productValue = numArray.reduce(function(previous, current) { return previous * current }); 
 
    var meanValue = numArray.reduce(function(previous, current) { return previous + current/numArray.length }); 
 

 
    document.getElementById("result").innerHTML = 'Min value is: ' + minValue + '<br>' + 'Max value is: '+ maxValue + '<br>' + 'Sum value is: ' + sumValue + '<br>' + 'Product value is: ' + productValue + '<br>' + 'Mean value is: ' + meanValue; 
 
} 
 

 
function clearAnswer(){ 
 
    document.getElementById("result").innerHTML = ''; 
 
    document.getElementById("qty").value = ''; 
 
}
<h1> Problem JavaScript</h1> Enter 5 numbers with spaces in between each: 
 
<input type="text" id="qty"> 
 
<input type="button" id="go" value="Calculate" onclick="calculate()"> 
 
<button type="reset" id="reset" onclick="clearAnswer()">Clear</button> 
 
<div id="result"></div>

+0

哪條線斷了? – gurvinder372

+0

如果在點擊計算後最後一個數字之後輸入了空格,則所有結果= NaN – newbieDeveloper

回答

2

我試過$ .trim但無法弄清楚如何得到那個工作。

如果您使用的是jquery trim,那麼確保您已經包含jquery庫。

變化

var numArray = numInput.split(" ").map(function(t) { 
return parseInt(t); 
}); 

var numArray = $.trim(numInput).split(" ").map(function(t) { 
    return parseInt(t); 
}); 

或簡單地

var numInput = $.trim(document.getElementById("qty").value); 

使用$.trim()修剪numInput第一

編輯:

你真的不需要在這裏只使用jquery來使用trim函數,javascript本身有trim方法,你可以使用它。

+0

@cSimms您是否嘗試過我共享的代碼? – gurvinder372

+0

非常感謝!之前我在錯誤的地方使用$ .trim – newbieDeveloper

0

$.trim是一個jQuery的函數,它通過傳遞一個參數到trim,它將被修剪。例如:

$.trim(" a ") 

將導致"a"

你的例子就是這樣的工作

var numArray = $.trim(numInput).split(" ").map(function(t) { 
    return parseInt(t); 
}); 

當且僅當jQuery的定義,也就是說,你加載庫。但是,如果你想專門爲此目的使用jquery,那麼爲此目的有一個純JS函數作爲替代品,稱爲trim。可以這樣使用:

var numArray = numInput.trim().split(" ").map(function(t) { 
    return parseInt(t); 
}); 
+0

謝謝,不知道javascript函數 – newbieDeveloper

+0

@cSimms,歡迎大家。如果你不需要jquery,那麼trim()就是解決方案。 –