请帮助我理解为什么我的代码没有像我期望的那样做出反应?
所以我在 for 循环中遍历值列表,然后如果它们匹配表单提交的值,它应该返回该值,如果它不匹配,它应该返回 -1。如果我在 if 条件中省略了 'else' 语句,它会起作用(如果没有匹配的值,显然不会返回 -1)。但是使用 else 时,它只会返回第一个值(在本例中为 10),否则它将始终返回 -1。(就像如果我输入 20,它会返回 -1,即使它在我的值列表中)
我在这里错过/不理解什么?
// reference the form
var myForm = document.getElementById('findValue');
// our list of random values
var values = [10,20,30,40,50,60,70,80,90,100,234,255,345,366,900,1000,1002,1025,2034];
// on form submit
myForm.onsubmit = function(evt) {
var valueToFind = document.getElementById('myValue').value;
// do not let it refresh the page/send a query
evt.preventDefault();
for(var i = 0; i < values.length; i++) {
if(valueToFind == values[i]) {
alert(values[i]);
}
else {
alert(-1);
return false;
}
}
};
非常感谢!