2016-08-21 1 views
1

Вот код в Jsfiddle
Это простая форма, чтобы создать новую форму: лейбл и это вход
я уже сделал четыре валидация:Как обнаружить элемент существует в массиве с одним или несколькими элементами

  1. если вход пуст
  2. если не в метке перед добавлением входа
  3. если входной идентификатор не соответствует этикетке

Но есть новая проблема: если я вхожу входной идентификатор, который уже существует, он будет добавлен вторым входом для одной и той же этикетки,
Например:
enter image description here
Я создал две меток и их входы
enter image description here
, если я введу «а» в «ввода идентификатора» снова, это добавит второй вход маркировать «а»
enter image description here
А если добавить такой же ярлык снова, то для добавления входа та же проблема, это добавит к обоим.
Чтобы избежать этой проблемы, я думаю, что мне нужно проверить: , если значение входного сигнала соответствует любому существующему идентификатору входа, поэтому не добавляйте вход, то же самое для лейбла
Я пытаюсь сделать это:

  1. создать пустой массив
    var inputExist = [];
  2. толчок идентификатор в этом массиве каждый раз, когда я добавить новый вход inputExist.push($('#input_id').val());
  3. сделать петлю for в else, чтобы обнаружить, если входное значение ма tched любой элемент в массиве
    for (var i = 0; i < inputExist.length; i++){
    if($('#input_id').val() == inputExist[i]){}
    }

    Scince if condiction основан на петле, я должен поставить if внутри цикла, что означает else тоже, так что приведет к добавлению ввода заказа делают array.length раз, а не хорошо!
    Я понятия не имею, как разделить обнаружение и инструкцию.
    Любые идеи?

ответ

1

Создайте массив, в котором вы храните метки, которые вы уже добавили (или значения);

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

Затем, когда вы справляетесь нажатие кнопки, добавьте следующую проверку:

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

В Альтернативе вы можете использовать функцию JQuery:

$.inArray(currentLabel, labelsArray) 

сделать то же самое со значениями и вы сможете избежать дублирования.

В Альтернативе вы можете использовать JQuery для поиска ввода

+0

Я попробовал это основанное на ваше предложение, он хорошо работает, спасибо !!! –

Смежные вопросы