首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery UI自动完成总是显示所有条目

JQuery UI自动完成总是显示所有条目
EN

Stack Overflow用户
提问于 2016-01-10 16:48:07
回答 1查看 171关注 0票数 0

我试图在Rails应用程序中实现JQuery UI自动完成,我已经访问了这个question,但它并没有帮助我。

我的问题是,JQuery总是显示所有的条目,无论我提供什么输入,它总是建议我每一个条目。

这是我的密码:

联署材料:

代码语言:javascript
复制
$(function() {
    $( "#customer_city_input_field_" ).autocomplete({
        source: '/cities.json'
    });
});

Rails:

代码语言:javascript
复制
# GET /cities
  # GET /cities.json
  def index
    @cities = City.all
    list = @cities.map {|u| Hash[ id: u.id, label: "#{u.postcode} #{u.name}", name: u.name, dialing_code: u.dialing_code]}
    respond_to do |format|
      format.html
      format.json {
        render json: list
      }
      end
    end

如果我访问domain.com/cities.json,就会得到以下输出:

{"id":1,“标签”:“10000城市”,“名称”:“城市”,"dialing_code":1234}

这个条目总是显示,所以自动完成工程..。有点。我还试图将源从资源更改为局部变量。

联署材料:

代码语言:javascript
复制
$(function() {
    var availableCities = [{"id":1,"label":"1000 City","name":"City","dialing_code":1234}];
    $( "#customer_city_input_field_" ).autocomplete({
        source: availableCities
    });
});

因此,我所做的就是将/cities.json的输出复制到一个局部变量中,并且自动完成功能就像一个魅力一样工作。它做的正是它应该做的。如果我将源从Rails资源更改为局部变量,您知道为什么行为是不同的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-10 23:29:55

查看jquery自动完成小部件上的文档,特别是“source”选项:http://api.jqueryui.com/autocomplete/#option-source

它指出:

Autocomplete插件不过滤结果,而是添加了一个查询字符串,其中添加了一个术语字段,服务器端脚本应该使用该字段来过滤结果。例如,如果源选项设置为"http://example.com“,并且用户键入foo,则会向http://example.com?term=foo发出GET请求。

这意味着你必须编辑你的索引动作。如果存在param term,则应该执行类似于@cities = City.where('name ILIKE ?', "%#{params[:term]}%")的操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34708086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档