私のコードが期待どおりに反応しない理由を理解するのを手伝ってください。
したがって、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;
}
}
};
どうもありがとう!