2016-02-23 34 views
1

我試圖在users/new.html.slim中呈現多個表單。我在form1中的「下一個」按鈕遇到問題,當我單擊它時,它會自動將表單提交給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 

有誰知道爲什麼發生?我懷疑縮進導致它行爲怪異。

+0

我加e.preventDefault();到我的js.file。它看起來像在工作,但不知道它是否正確。 ('click',function(e){ e.preventDefault(); }); – Ryuji

回答

1

你的問題是按鈕的默認類型是「提交」,所以除非你明確地改變按鈕類型,否則表單中的任何按鈕都會觸發表單提交。

您可以通過顯式的增加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