通过多个部分提交表单

时间:2013-01-07 01:33:41

标签: ruby-on-rails-3 jquery

我有一个很长的形式,我想分成大约5个部分。当用户点击每个部分底部的“下一步”时,我想使用AJAX加载下一部分,直到最后一部分将整个表单提交到数据库中。此外,如果用户点击“上一个”,我需要填写用户先前填写的字段。

到目前为止,我有这个不起作用:

用户/ new.html.erb

<%= form_for(@user, :html => { :class => "form-horizontal" }, remote: true) do |f| %>
...
<%= f.submit "Next" %>

users_controller.rb

  def create
    @user = User.new(params[:user])
    if @user.save
      respond_to do |format|
        format.html { flash[:success] = "Welcome to Friends First!"
                  redirect_to @user }
        format.js
      end
    else
      render :new
    end
  end

create.js.erb

$("#site_content").html("<%= escape_javascript(render('layouts/partial2')) %>");

1 个答案:

答案 0 :(得分:0)

我会将5个部分中的每个部分放入单独的div(display:none)中,并且只显示(display:block)第一部分。当用户点击“下一步”时,我会显示第二个,等等。最后提交到创建操作也可以通过jquery完成

$.ajax(
  url: '/users',
  type: 'post',
  data: $("form").serialize()
)

我希望,这有帮助。