2009-11-16 1 views
1

мой вызов автозаполнения ничего не показывает прямо сейчас, потому что div, который я вставляю в ul, имеет свой стиль для отображения: none. с помощью firebug, я вижу, что результаты возвращаются в надлежащем неупорядоченном теге списка и когда я редактирую html из консоли firebug и удаляю style = "display: none;", я вижу результаты автозаполнения. Я добавил css для созданных тегов автозаполнения, но это перезаписывается прототипом 1.6.1/scriptaculous 1.8.3. Кроме того, я использую рельсы 1.2.2Почему Ajax.Autocompleter задает стиль для контейнера div для отображения результатов: none?

вот код с моей точки зрения:

<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

+0

Я решил эту проблему, взяв HTML-комментарии с серверной стороны [Coldfusion, но будет аналогичная идеология для PHP и т. Д.] Включить файл, который включен в каждую страницу. Каким-то образом комментарии всасывались в автозаполнение DIV. Это проявилось только в версии Firebug от Chrome! –

ответ

0

Вы должны войти в помощнике auto_complete (внутри каталога поставщика) и измените строку items.uniq на items.uniq.join Причиной является изменение в поведении to_s Массивы в Ruby 1.9. Работала для меня так.

Смежные вопросы