在导轨3中使用typeahead自动完成

时间:2013-11-08 16:13:49

标签: javascript jquery ruby-on-rails autocomplete

我正在开发我的rails应用中的特定表单的自动完成功能;为此我正在使用带有自定义控制器方法的typeahead.js。到目前为止,它工作,但我需要再次使用表单中的这些值,以便我可以按下提交按钮,表格将通常由rails发布和处理。我怎样才能做到这一点?这是现在的代码

.page-header
  %h1
    = @org.name
    %small= t('.title')
= form_for @org_admin, |
       url: organization_organization_admins_path(@organization) do |f|
  .form-group
    = f.label t('.user')
    = f.hidden_field :user, id: 'user_id'
    %input.typeahead{ :type => "text", :autocomplete => "off"}
= f.submit t('.submit'), class: 'btn btn-primary'
= link_to t('.back'), organization_organization_admins_path(@organization)
:javascript
  $(document).ready(function() {
  $('input.typeahead').typeahead({
    name: 'names',
    remote: "#{search_organization_organization_admins_path(@organization)}?term=%QUERY",
    engine: Hogan,
    template: '<p><strong>{{username}}</strong></p>',
    limit: 10
    }).on('typeahead:selected', function(e, data){
        $('#user_id').value = data.id
    });
  });

所以,我想用控制器返回的json对象填充表单中的:user属性

1 个答案:

答案 0 :(得分:0)

没关系,我发现......上面的代码是在正确的路径上,除了对此行的调用

$('#user_id').value = data.id

由于我使用jQuery来选择隐藏元素,我不得不使用jQuery val函数

$('#user_id').val(data.id)