Тот же список записей, приходящих на Railscasts tokeninput

Я использую плагин railscasts tokeninput для автозаполнения. Я хочу, чтобы в раскрывающемся списке отображались только те записи, которые не включены в поле ввода

Мой код JS

$(function() {
  $("#category").tokenInput("/products/product_categories.json", {
    crossDomain: false,
    prePopulate: $("#category").data("pre"),
    theme: "facebook"
  });
});

Мой контроллер

def product_categories
category = Category.where("name like ?", "%#{params[:q]}%")
respond_to do |format|
  format.html
  format.json { render :json => category.map(&:attributes) }
end

конец

Он работает нормально, но проблема в том же списке появляются каждый раз. Предположим, в выпадающем списке есть две записи Азия и Африка. После добавления азии в поле ввода снова при щелчке по полю появятся азия и африка.

Я хочу, чтобы, если запись уже включена в поле ввода, она не должна отображаться в раскрывающемся списке.

1 ответ

Решение

Если вы используете JQuery tokeinput, у вас есть 2 варианта для предотвращения дублирования

  1. использование preventDuplicates параметры, так что даже если пользователь выбирает одни и те же параметры несколько раз из списка, он будет добавлен только один раз.
  2. Использовать обратный звонок onResult манипулировать данными ответа. Чтение содержимого поля ввода и удаление этих элементов из массива данных. Вы можете обратиться к этому вопросу переполнения стека, чтобы увидеть, как писать onResult Перезвоните.

Полная документация по токену JQuery находится здесь.

Другие вопросы по тегам