0

JQueryUIオートコンプリートを単純なテキストボックスで機能させようとしていますが、ブラウザーに応答がありません。完全に配線されていないのではないかと思います。なるべく「Rails3」としてやりたいです。コントローラ内(ブランドはActiveRecord :: Baseから派生したモデルで、フィールドは「名前」です):

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リクエストを作成するという点で、私は何を間違っていますか?

4

1 に答える 1

0

まず、サーバーから返されるものが実際にJSON配列であることを確認します。これは、jQueryUIオートコンプリートに必要です。Javascriptの代わりにJSONをレンダリングしてみてください。

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エラーがあるかどうかを確認します。

于 2012-09-21T15:50:38.500 に答える