slim中渲染表单意外提交数据
Rendering form in slim unexpectedly submits data
我正在尝试在 users/new.html.slim
中呈现多个表单。我在使用 form1 中的 "next" 按钮时遇到问题,当我单击它时,它会自动将表单提交给 db。但是,它应该只呈现下一个表单。
= simple_form_for @user, html: { class: "profile_form"} do |f|
= f.fields_for :profile, @user.profile || Profile.new do |p|
= render 'users/form1', f: f, p: p
= f.submit
这是 form1
.form-1
.form-1-detail
= f.input :name
= f.input :email
= f.input :password, required: true
= f.input :password_confirmation, required: true
button.next next
有谁知道为什么会这样?我怀疑缩进导致它表现得很奇怪。
您的问题与按钮的默认类型有关,即 "submit",因此表单中的任何按钮都会触发表单提交,除非您专门更改按钮类型。
您可以通过显式添加 type="button"
:
.form-1
.form-1-detail
= f.input :name
= f.input :email
= f.input :password, required: true
= f.input :password_confirmation, required: true
button.next type="button" next
我正在尝试在 users/new.html.slim
中呈现多个表单。我在使用 form1 中的 "next" 按钮时遇到问题,当我单击它时,它会自动将表单提交给 db。但是,它应该只呈现下一个表单。
= simple_form_for @user, html: { class: "profile_form"} do |f|
= f.fields_for :profile, @user.profile || Profile.new do |p|
= render 'users/form1', f: f, p: p
= f.submit
这是 form1
.form-1
.form-1-detail
= f.input :name
= f.input :email
= f.input :password, required: true
= f.input :password_confirmation, required: true
button.next next
有谁知道为什么会这样?我怀疑缩进导致它表现得很奇怪。
您的问题与按钮的默认类型有关,即 "submit",因此表单中的任何按钮都会触发表单提交,除非您专门更改按钮类型。
您可以通过显式添加 type="button"
:
.form-1
.form-1-detail
= f.input :name
= f.input :email
= f.input :password, required: true
= f.input :password_confirmation, required: true
button.next type="button" next