Javascript 正在验证用户输入以防止重复ID

Javascript 正在验证用户输入以防止重复ID,javascript,Javascript,每次用户输入用户ID、名字、姓氏并单击按钮时,我都会尝试创建新的“学生”对象。 我想到目前为止我已经做到了这一点,但我正在努力确保不能添加多个具有相同ID的学生。我认为使用两个不同的变量循环可能是隔离潜在重复项的最佳方法,但我看到警报消息的唯一时间是实际上没有任何重复项的时候。有人能用这个把我推向正确的方向吗 这是我的密码: <form> ID Number:<br> <input type="text" id="idNumber"> <br> F

每次用户输入用户ID、名字、姓氏并单击按钮时,我都会尝试创建新的“学生”对象。 我想到目前为止我已经做到了这一点,但我正在努力确保不能添加多个具有相同ID的学生。我认为使用两个不同的变量循环可能是隔离潜在重复项的最佳方法,但我看到警报消息的唯一时间是实际上没有任何重复项的时候。有人能用这个把我推向正确的方向吗

这是我的密码:

<form>
ID Number:<br>
<input type="text" id="idNumber">
<br>
First name:<br>
<input type="text" name="firstName" id="fName">
<br>
Last name:<br>
<input type="text" name="lastName" id="lName">
</form>
<br>
<button type ="submit" onclick="myFunction(list)">Submit</button>
<div id = "container">
<ul id="list"></ul>
</div>

<script>
function myFunction(list){

    var ids =[];
    var student = new Object();
    student.idNo = document.getElementById("idNumber").value;

    student.firstName = document.getElementById("fName").value;
    student.lastName = document.getElementById("lName").value;

    for(var i = 0; i < 10; i++){
        for(var j = 1; j < 10 ; i++){
        ids.push(student.idNo);
        if(ids[i] == ids[j]){
        alert("Id already exists");
        }
        }
    }

    var text = " "+student.idNo+" "+student.firstName+" "+student.lastName;

    var li = document.createElement("li");
    li.addEventListener("mouseover", mouseOver, false);
    //li.addEventListener("click", mouseClick, false);
    var node = document.createTextNode(text);
    li.appendChild(node);
    document.getElementById("list").appendChild(li);
}


</script>

身份证号码:

名字:

姓氏:

提交
    函数myFunction(列表){ var-id=[]; var student=新对象(); student.idNo=document.getElementById(“idNumber”).value; student.firstName=document.getElementById(“fName”).value; student.lastName=document.getElementById(“lName”).value; 对于(变量i=0;i<10;i++){ 对于(var j=1;j<10;i++){ id.push(student.idNo); if(ids[i]==ids[j]){ 警报(“Id已存在”); } } } var text=”“+student.idNo+“”+student.firstName+“”+student.lastName; var li=document.createElement(“li”); li.addEventListener(“mouseover”,mouseover,false); //li.addEventListener(“单击”,鼠标单击,false); var节点=document.createTextNode(文本); li.appendChild(节点); 文件.getElementById(“列表”).appendChild(li); }
    这里是一个工作片段。您的
    ìds
    始终设置为空数组,因为它位于函数内部

    varids=[];
    函数myFunction(列表){
    var student=新对象();
    student.idNo=document.getElementById(“idNumber”).value;
    student.firstName=document.getElementById(“fName”).value;
    student.lastName=document.getElementById(“lName”).value;
    if(id.indexOf(student.idNo)=-1){
    id.push(student.idNo);
    var text=”“+student.idNo+“”+student.firstName+“”+student.lastName;
    var li=document.createElement(“li”);
    var节点=document.createTextNode(文本);
    li.appendChild(节点);
    文件.getElementById(“列表”).appendChild(li);
    }否则{
    警报(“重复ID”);
    }
    }
    
    身份证号码:
    

    名字:

    姓氏:

    提交

      这里是一个工作片段。您的
      ìds
      始终设置为空数组,因为它位于函数内部

      varids=[];
      函数myFunction(列表){
      var student=新对象();
      student.idNo=document.getElementById(“idNumber”).value;
      student.firstName=document.getElementById(“fName”).value;
      student.lastName=document.getElementById(“lName”).value;
      if(id.indexOf(student.idNo)=-1){
      id.push(student.idNo);
      var text=”“+student.idNo+“”+student.firstName+“”+student.lastName;
      var li=document.createElement(“li”);
      var节点=document.createTextNode(文本);
      li.appendChild(节点);
      文件.getElementById(“列表”).appendChild(li);
      }否则{
      警报(“重复ID”);
      }
      }
      
      身份证号码:
      

      名字:

      姓氏:

      提交

        每次调用该方法时,您都在初始化ids数组。传递给函数的是什么列表?每次调用该方法时,都会初始化ids数组。您要传递到函数中的列表是什么?干杯。不确定我是如何设法错过在函数中声明数组的。。谢谢你的帮助,干杯。不确定我是如何设法错过在函数中声明数组的。。非常感谢你的帮助