【问题标题】:How to load a div with Rails and ajax?如何使用 Rails 和 ajax 加载 div?
【发布时间】:2014-03-26 14:49:27
【问题描述】:

我有一个充满产品的索引页面(产品控制器),我可以通过单击“订单”按钮创建订单,这会将用户引导至订单控制器的“新”操作,并将产品 ID 作为范围。

  def new
    @order = Order.new
    @product = Product.find(params[:product])
  end

用户可以在那里选择他想要的数量并最终创建订单。

但是,我想在单击“订单”时弹出一个模式窗口,其中包含“新订单”页面中的表单。所以我将 data-remote 属性添加到我的 Order 按钮:

<%= link_to('Order', new_order_path(product: product), class: "btn btn-order", remote: true) %>

更新了你的控制器:

def new
    @order = Order.new
    @product = Product.find(params[:product])

    respond_to do |format|
      format.html
      format.js
    end
  end

并创建了 new.js.erb 文件,它打开了我的模态窗口

function openModal = somecode...

但是如何获取超出链接的 FORM 的 html?我不想渲染部分,我只想将表单代码粘贴到我的模态窗口的 .html('...') 中!

谢谢!

【问题讨论】:

    标签: jquery ruby-on-rails ajax ruby-on-rails-4


    【解决方案1】:

    您可以使用 jQuery 将表单的内容添加到 DOM,方法是将其呈现为 new.js.erb 文件中的部分内容,如下所示:

    $('#modal_id').html('<%= escape_javascript(render(partial: "path/to/partial", object: @instance_variable)) %>');
    

    编辑:在第二次阅读您的问题时,我看到您提到您不希望呈现部分内容,因此您可以直接在您的 new 视图中使用表单代码;像这样:

    var form_html = '<form>...</form>';
    $('#modal_id').html(form_html);
    

    我希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      • 2015-02-13
      • 2014-04-30
      • 1970-01-01
      • 2012-12-04
      相关资源
      最近更新 更多