2015-02-24 110 views
-1
var number = new Array(); 

number[1] = document.getElementById("num1"); 
number[1].addEventListener("change",function() { getNumbers(0); },false); 
number[2] = document.getElementById("num2"); 
number[2].addEventListener("change",function() { getNumbers(1); },false); 
number[3] = document.getElementById("num3"); 
number[3].addEventListener("change",function() { getNumbers(2); },false); 
number[4] = document.getElementById("num4"); 
number[4].addEventListener("change",function() { getNumbers(3); },false); 
number[5] = document.getElementById("num5"); 
number[5].addEventListener("change",function() { getNumbers(4); },false); 
number[6] = document.getElementById("num6"); 
number[6].addEventListener("change",function() { getNumbers(5); },false); 

function getNumbers(num) { 
    myNumbers[num] = parseInt(number[num+1].value); 
    if(!validNumber(myNumbers[num])) { 
    number[num+1].value=""; 
    myNumbers[num]=""; 
    } 
} 
function checkNums(Lotto, num) { 
     x=Lotto.indexOf(num);   
     if (x!=-1) { 
     return true; 
    } 
    return false; 
} 

var myNumbers = new Array(); 

function validNumber(num) { 
if(checkNums(myNumbers, myNumbers[num])) { 
    alert("Number already chosen. Please enter a valid number between 1 and 45"); 
    return false; 
} 

当我向数组中输入一个数字时,它会一直提醒“数字已被选中,请输入1到45之间的有效数字”。javascript indexOf不能检查数组中的相同数字

我想请教一下,如果我输入一个数字mynumber的[0],我叫checkNums功能,它会检测编号i输入到mynumber的[0]是mynumber的数组中已经并保持警戒信息?

+0

你的意思是你设置通过myNumbers [0] = 10,然后再次调用该函数?它当然会警觉。 – Kai 2015-02-24 17:46:00

+0

那么如何使用checkNum函数检查数组中已经存在的数字而不检查输入的数字呢? – 2015-02-24 17:50:31

+1

@TanYunShen:检查数字是否在数组* *中,然后只在它不在*时插入*。 – 2015-02-24 17:56:29

回答

0

检查数字是否已经在之前插入。因此,举例来说:

function getNumbers(num) { 
    var newNumber = parseInt(number[num+1].value, 10); // Note: it might be worth 
                 // checking for NaN here as well 
    if (myNumbers.indexOf(newNumber) != -1) { 
     myNumbers[num] = newNumber; 
    } 
    else { 
     alert("Number already chosen. Please enter a valid number between 1 and 45"); 
     number[num+1].value=""; 
    } 
} 
相关问题