Ale*_*kov 5 ruby-on-rails turbolinks
我正在使用带有Turbolink的bootstrap 3,问题是,当我在编辑表单中按Submit按钮时,什么也没发生,但是如果我重新加载页面,则每个输入都可以提交。我不明白为什么会这样,我什至没有在表单中使用javascript。这是代码:
<div class = "row">
<%= semantic_form_for @post do |f| %>
<%= f.semantic_errors %>
<div class = "form-group">
<div class = "col-lg-9 col-md-7">
<%= f.input :title, :label => "Title" %>
<%= f.input :content, :as => :rich, :allow_embeds => true %>
<%= f.input :cat_list, :label => "Type your tags here" %>
</div>
<div class = "col-lg-3 col-md-4 ">
<p>
<%= image_tag(@post.thumbnail.url(:original), :class => "img-thumbnail") %>
</p>
<p>
<%= f.input :thumbnail, as: :file %>
</p>
<p>
<%= f.select :tag_list, Post::Tags, { }, { :multiple => true, :size => 10, :class => "form-control" } %>
</p>
</div>
<%= f.action :submit, :as => :button, :button_html => { :class => "btn btn-primary" } %>
</div>
<% end %>
<%= link_to 'Show', @post %> |
<%= link_to 'Back', posts_path %>
Run Code Online (Sandbox Code Playgroud)
这是我的application.js的内容:
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap
//= require_tree .
Run Code Online (Sandbox Code Playgroud)
我对 Turbolinks 的经验是,最好总是向提交表单按钮添加一个侦听器,例如:
$('document').on 'click', '.submit-btn', ->
$('form').submit()
Run Code Online (Sandbox Code Playgroud)
原因是因为一些 JS/UJS 与 Turbolinks 发生冲突,特别是 $('document').ready() 函数的冲突,因为 Turbolinks 不会刷新头部的 JS,它只替换正文。
如果您有 $('document').ready,您可以将其替换为 Turbolinks 自定义侦听器(还有其他几个)
$(document).on('page:load', ready)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3335 次 |
| 最近记录: |