Member 12766235 Ответов: 1

Скрыть уже выбранные элементы jQuery автозаполнение


Мой код приведен ниже


.функция автозаполнения({
минимальная длина: 0,
источник: функция (запрос, ответ) {
ответ($.пользовательского интерфейса.автозаполнение.фильтр(
данные, extractLast(request. term)));
},

В приведенном выше коде получите все данные автозаполнения "data" и извлеките элемент из этих данных.
Как скрыть уже выбранный элемент.

Пожалуйста, помогите мне.

Что я уже пробовал:

Скрыть уже выбранные элементы jQuery автозаполнение

1 Ответов

Рейтинг:
1

Bryian Tan

На самом деле, вы можете сделать код для фильтрации списка на стороне сервера перед отправкой его клиенту

Вот пример:
На странице просмотра перезапишите источник, передав дополнительный параметр

function split(val) {
                  return val.split(/,\s*/);
              }
 function extractLast(term) {
                return split(term).pop();
            }

.autocomplete({
...
   source: function (request, response) {
                    $.getJSON(
                        'YourController/Action',
                        {
                            term: extractLast(request.term),
                            sValue: $('#textBoxId').val()
                        },
                        response);
                },
...
});


На стороне сервера добавьте дополнительную логику для фильтрации выбранного значения из источника
public JsonResult AutocompleteFilter(string term, string sValue)
{
 string[] selectedValue = 
		sValue.Split(',').Select(s => s.ToLower().Trim()).ToArray();
				
 var result = from o in yourSource
              where !selectedValue.Contains(o.WhatEverField.ToLower())
			&&  ...
              select o;
...
}


Ресурсы:
пользовательского интерфейса jQuery автозаполнения и фильтрации данных - переполнения стека [^]

Автозаполнение: рефакторинг кода для фильтрации массива в$. ui.autocompl… · jquery/jquery-ui@dbc9add · GitHub[^]