如何使用一个或多个元素检测数组中的现有元素

时间:2016-08-21 14:56:41

标签: javascript jquery html

以下是Jsfiddle中的代码 它是创建新表单的简单形式:标签及其输入
我已经做了四次验证:

  1. 如果输入为空
  2. 如果在添加输入之前没有标签
  3. 如果输入ID与标签
  4. 不匹配

    但是有一个新问题:如果我输入已经存在的输入ID,它将为同一标签添加第二个输入,
    例如:
    enter image description here
    我创建了两个标签及其输入
    enter image description here
    如果我进入" a" in"输入id"再次,它将添加第二个输入标签" a"
    enter image description here
    如果我再次添加相同的标签,那么添加输入是同样的问题,它会添加到它们两个 为了避免这个问题,我认为我需要检查:如果输入值与任何现有输入ID匹配,那么不要添加输入,标签相同
    我试着这样做:

    1. 创建一个空数组
      var inputExist = [];
    2. 每次添加新输入inputExist.push($('#input_id').val());
    3. 时,都会在此数组中推送ID
    4. for中执行循环else以检测输入值是否与数组中的任何元素匹配
      for (var i = 0; i < inputExist.length; i++){
      if($('#input_id').val() == inputExist[i]){}
      }

      Scince if condiction基于循环,我必须将if放在循环中,这也意味着else,这样会导致添加输入顺序为{{1时间,不好! 我不知道如何分离检测和所遵循的指令 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

创建一个数组,用于存储已添加的标签(或值);

var labelsArray = [];
var valuesArray = [];

然后,当您处理按钮单击时,添加以下检查:

var currentLabel = $('#lable_name').val();
if(labelsArray.indexOf(currentLabel) > -1){
    return;
}

另外,你可以使用jQuery函数:

$.inArray(currentLabel, labelsArray)

对值执行相同操作,您将能够避免重复。

另外,您可以使用jQuery搜索输入