1

ul を挿入している div のスタイルが display:none に設定されているため、オートコンプリート呼び出しには現在何も表示されていません。firebug を使用すると、適切な順序付けられていないリスト タグで結果が返されることがわかります。また、firebug コンソールから html を編集して style="display:none;" を削除すると、オートコンプリートの結果が表示されます。生成されるオートコンプリート タグの CSS を追加しましたが、これはプロトタイプ 1.6.1/scriptaculous 1.8.3 によって上書きされています。また、私はレール1.2.2を使用しています

ここに私の見解からのコードがあります:

<script type="text/javascript">
  new Ajax.Autocompleter("autocomplete", "autocomplete_choices", "/campaigns/title_list", {tokens: ',', paramName: 'title'});
</script>

<input type="text" id="autocomplete" name="autocomplete_parameter"/>
   <div id="autocomplete_choices" class="autocomplete"></div> 

そしてここで私のコントローラーアクションと部分:

def title_list
  camp_title = params[:title]
  @titles = Campaign.find(:all, :conditions => ["title ilike ?", "%#{camp_title}%"], :select => :title).collect { |camp| camp.title }
  render :partial => "title_list"
end     

_title_list.rhtml

<ul>
  <% @titles.each do |t| %>
      <li> <%= t %> </li>
  <% end %>
</ul>

これが私がfirebugで見たものです:

<div style="display: none; position: absolute; left: 8px; top: 123px; width: 155px;" id="autocomplete_choices">
  <ul>
    <li class="selected"> DirecTV Defender (Best Deal Ever) </li>
    <li class=""> Defender DirecTV </li><li class=""> DirecTV Defender - Collections </li>
    <li class=""> Defender DirectTV (Gotham Direct) </li>
  </ul>
</div>

どんな提案でも大歓迎です。

-h

4

1 に答える 1

0

auto_complete ヘルパー (vendor ディレクトリ内) に移動し、行 items.uniq を items.uniq.join に変更する必要があります。その理由は、Ruby 1.9 での配列の to_s 動作の変更です。このように私にとってはうまくいきました。

于 2009-11-29T19:50:06.907 に答える