如何验证用户输入?

时间:2016-01-11 18:27:51

标签: javascript html

如果输入的最后一个号码后面有空格,程序会中断。如果输入空格,如何阻止该功能中断?我试过$ .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> 

2 个答案:

答案 0 :(得分:3)

  

我尝试了$ .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方法,你可以使用它。

答案 1 :(得分: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);
});