我试图让JQueryUI自动完成工作在一个简单的文本框中,我在浏览器中看不到任何响应。我怀疑我没有完全连线的东西。我也想尽可能做“Rails 3”。 在控制器中(Brand是模型,派生自ActiveRecord :: Base,字段'name'):
class WelcomeController < ApplicationController
def show
@names = Brand.all.map(&:name)
respond_to do |format|
format.html
format.js
end
end
end
show.html.erb:
<h1>Welcome</h1>
<%= form_tag :method => :get do %>
<%= text_field_tag :name %>
<% end %>
show.js.erb:
<%= raw @names %>
在application.js中:
$(function() {
$('brand_name').autocomplete({
source: '/brands/new.js'
});
});
在制作一个由我设置的Javascript处理的AJAX请求方面,我做错了什么?
答案 0 :(得分:0)
首先,确保从服务器返回的内容实际上是一个JSON数组。这是jQuery UI自动完成所必需的。尝试渲染JSON而不是Javascript:
respond_to do |format|
format.html
format.json { render :json => @names }
end
然后为您的文本字段指定正确的类或ID。否则,我不知道你想如何将元素与jQuery匹配。
<%= text_field_tag 'brand_name', nil, :class => 'brand_name' %>
最后,更正javascript。
$(function() {
$('.brand_name').autocomplete({
source: '/brands/new.json'
});
});
如果出现其他问题,请使用webkit检查程序检查是否从服务器及其控制台收到正确的数据是否存在javascript错误。