javascript - jQuery 自动完成功能在 Rails 4 中不起作用

标签 javascript jquery ruby-on-rails jquery-ui-autocomplete turbolinks

我正在尝试将 jQuery UI 自动完成功能集成到我的 Rails 4.0 应用程序中,如 Railscast 中所述:102-AutoCompleteAssociationRevised .

不幸的是,自动完成不起作用。尽管呈现的 HTML 看起来不错,但我没有得到任何建议:

<input id="plan_part_name" type="text" name="plan[part_name]" data-autocomplete-source="["foo","food","foobar"]"></input>

我也停用了 Turbolinks,但没有任何改变......

在我的 Gemfile 中,我包含了 gem 'jquery-ui-rails' 并且我的 application.js 看起来像这样:

//= require jquery
//= require jquery.ui.all
//= require jquery_ujs
//= require bootstrap
//= require turbolinks
//= require jquery-fileupload/basic
//= require jquery-fileupload/vendor/tmpl
//= require_tree .

这是我正在使用的表单,edit.html.erb:

<%= form_for [@project, @plan], remote: true, html: { id: "edit-form-#{@plan.id}" } do |f| %>
  <%= f.text_field :title %>

  <%= f.text_field :part_name, data: {autocomplete_source: %w[ foo food foobar ]}  %>

  <%= f.submit "Update" %>
<% end %>

autocomplete.js.coffee:

autocomplete = ->
  $('#plan_part_name').autocomplete
    source: $('#plan_part_name').data('autocomplete-source')

$(document).ready(autocomplete)
$(document).on('page:load', autocomplete)

最佳答案

我找到了解决方案:

我的编辑表单由 Ajax 请求呈现,因此我不得不更改 Javascript 文件 (autocomplete.js.coffee) 来自:

$(document).on('page:load', autocomplete)

到:

$(document).on('page:update', autocomplete)

与 Turbolinks 一起正常工作。您可以在 Turbolinks Readme 中找到更多信息.

关于javascript - jQuery 自动完成功能在 Rails 4 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21185490/

相关文章:

javascript - 如何在javascript中将日期时间从用户时区转换为EST

javascript - 使用在 firefox 中不起作用的 javascript 创建和打开文件

javascript - 我想根据 java 脚本值显示 css 通知

ruby-on-rails - Ruby on Rails 连接到服务器问题

ruby-on-rails - 如何在 Rails 中定义自定义配置变量?

ruby-on-rails - 如何使 rails admin 导航标签链接以 https 开头?

javascript - 将值传递给对象内的 KO 计算可观察值

javascript - Jquery 检查输入是否有特定名称?

javascript - 分区隐藏在 jquery 中不起作用

jquery - 在 $.each fn 中创建的回调和使用 for 循环的回调行为有何不同?