【问题标题】:can't refresh a rails html div with ajax无法使用 ajax 刷新 rails html div
【发布时间】:2013-02-08 19:49:30
【问题描述】:

以下内容在 div 中呈现“2”,就像提交表单时一样。

完整品牌/create.js.erb 版本 1:

$("#brand_ajax").html("1")

$("#brand_ajax").html("0")

$("#brand_ajax").html("2")

部分品牌/show_brands.html.erb 我要刷新的 div

<% for brand in @brands%>
   ID: <%= h brand.id %>
<% end %>

部分汽车/show.html.erb ajax 调用

<%= form_for([@car, @car.brands.build], **remote: true**) do |f| %>
<%= f.fields_for :brandsdo |a| %>
<%= a.text_field :name, placeholder: "New Manufacturer" %>
<% end %>
<%= f.submit "+", class: "btn inline" %>
<% end %>

**/*The div I want to refresh*/**
<div id="brand_ajax">
<%= render 'brands/show_brands' %>
</div>

品牌控制器

respond_to do |format|
    if @brand.save
      format.html { redirect_to @car }
      format.js
    else
      flash[:notice] = "Error!"
      format.html { redirect_to @car }
     end
end 

提交新品牌表单后,以下内容不会呈现“2” - 根本不会刷新。只显示旧版本 'show_brands'。

完整品牌/create.js.erb(举例说明)

$("#brand_ajax").html("1")

$("#brand_ajax").html("<%= escape_javascript render 'show_brands' %>")

$("#brand_ajax").html("2")

有什么想法为什么会发生这样的事情?

【问题讨论】:

  • 您是否遇到任何错误?正在渲染什么?
  • 没有错误。只是没有最新品牌的品牌列表。刷新手册页后会显示最新品牌。
  • 这就是全部代码吗?
  • 添加了更多代码以更好地说明
  • 您能再粘贴一些代码吗?提交表格是什么意思??是在打ajax调用吗??你能发布你完整的javascript代码吗?

标签: ruby-on-rails ajax ruby-on-rails-3


【解决方案1】:

试试

$("#brand_ajax").html("<%= j render :partial => 'show_brands' %>")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 2012-09-01
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 2020-05-25
    • 2012-01-31
    相关资源
    最近更新 更多