我的自动完成调用现在没有显示任何内容,因为我将 ul 插入的 div 的样式设置为 display:none。使用 firebug,我可以看到结果以正确的无序列表标签返回,当我从 firebug 控制台编辑 html 并删除 style="display:none;" 时,我看到了自动完成结果。我为生成的自动完成标签添加了 css,但这被原型 1.6.1/scriptaculous 1.8.3 覆盖。另外,我正在使用 rails 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>
这是我在萤火虫中看到的:
<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