如何使用rails3-jquery-autocomplete更新复选框/单选按钮

时间:2012-06-11 14:34:26

标签: javascript ruby-on-rails ruby-on-rails-3 autocomplete

我正在使用rails3-jquery-autocomplete gem从数据库中获取自动完成项以及我需要预先填写表单的一些额外数据。

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

除url之外的所有内容都是布尔标志(用户首选项),用于选中/取消选中复选框并选择表单中的单选按钮。尽管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查询)?他们是一个更简单的方法吗?

1 个答案:

答案 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);
    });