У меня есть два списка, доступных и выбранных. Я хочу, чтобы я удалял любые доступные параметры для доступных, если существует в выбранном.Условное заполнение боксов
С моим кодом ниже все предметы помещаются в имеющиеся и нет в выбранном. Что я делаю не так?
var availableTags = [];
var selectedTags = [];
var jsonAvailble = '[{"id":"1","name":"One"},{"id":"2","name":"Two"},{"id":"3","name":"Three"},{"id":"4","name":"Four"}]';
var jsonSelected = '[{"id":"4","name":"Four"}]';
availableTags = $.parseJSON(jsonAvailble);
selectedTags = $.parseJSON(jsonSelected);
for (var i = 0; i < availableTags.length; ++i) {
//console.log($.inArray(availableTags[i].id, selectedTags));
if ($.inArray(availableTags[i].id, selectedTags) >= 0) {
$('#lstSelectedTags').append('<option value="' + availableTags[i].id + '">' + availableTags[i].name + '</option>');
}
else{
$('#lstAvailableTags').append('<option value="' + availableTags[i].id + '">' + availableTags[i].name + '</option>');
}
}
Ну, несмотря на 'if' условие вы делаете то же самое на каждой итерации. Попробуйте ничего не делать на 'else' (* или удалить его *). –
Обязательно удалите тег 'selected' из списка' available' после его выбора. В противном случае все выбранные будут * всегда * доступными и, следовательно, будут добавлены в список доступных. –