Тот же список записей, приходящих на 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 варианта для предотвращения дублирования
- использование
preventDuplicates
параметры, так что даже если пользователь выбирает одни и те же параметры несколько раз из списка, он будет добавлен только один раз. - Использовать обратный звонок
onResult
манипулировать данными ответа. Чтение содержимого поля ввода и удаление этих элементов из массива данных. Вы можете обратиться к этому вопросу переполнения стека, чтобы увидеть, как писатьonResult
Перезвоните.
Полная документация по токену JQuery находится здесь.