2012-06-11 89 views
1

我正在使用rails3-jquery-autocomplete gem從數據庫中提取自動完成項以及一些額外的數據,我需要預先填寫表單。除URL以外如何使用rails3-jquery-autocomplete更新複選框/單選按鈕

autocomplete :link, :name, :extra_data => [:url, :is_full_screen, :is_auto_trigger, :is_ad, :is_ecommerce]

一切是用於檢查/取消選中複選框並選擇單選按鈕的形式的布爾標誌(用戶偏好)。即使gem更新文本字段,但它不會自動更新複選框和單選按鈕。我已經指明:在表單視圖update_elements:

<%= f.autocomplete_field :name, autocomplete_link_path, :update_elements => {:url => '#link_url', :is_auto_trigger => '#link_is_auto_trigger'}

我該怎麼辦呢?我試圖探索railsAutocomplete.select JavaScript事件,當選擇該選項時會觸發,執行自定義js來選擇複選框和單選按鈕,但是如何從該事件偵聽器中獲取數據(來自sql查詢)?他們是一個更簡單的方法來做到這一點?

+0

您是否解決了這個問題?我想知道如何讓它從一個基於'extra_data'的下拉列表中選擇一個值。 –

+0

呃,沒關係,在修正了一個錯字之後,從下拉菜單中自動選擇。我可以看到複選框和單選按鈕是一個更大的挑戰。 –

回答

0

我解決了這個問題,通過執行自定義JavaScript更新複選框/收音機選擇其中一個自動完成選項。當從自動完成下拉列表中選擇一個值時,會在輸入字段上觸發一個名爲railsAutocomplete.select的JavaScript事件。 data.item包含您從數據庫中提取的所有數據(包括額外數據):

$('#link_name').bind('railsAutocomplete.select', function(event, data){ 
     // Custom JS to select radio/checkbox, or do any other complex task 
     select_linktype(data.item.linktype); 
     select_tracking(data.item.is_ad); 
    });