我有一个很长的形式,我想分成大约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')) %>");
答案 0 :(得分:0)
我会将5个部分中的每个部分放入单独的div(display:none)中,并且只显示(display:block)第一部分。当用户点击“下一步”时,我会显示第二个,等等。最后提交到创建操作也可以通过jquery完成
$.ajax(
url: '/users',
type: 'post',
data: $("form").serialize()
)
我希望,这有帮助。