2

2 つの異なる送信ボタンを持つ単純なフォームを作成しようとしています。しかし、どちらも同じ作成アクションに向かっているため、これを行う方法がわかりません。私はこのようなことを試しました:

/views/layouts/_form.html.erb:

<div id="theform">
<%= form_for(@user, :remote => true, :form_to_validate => 'user') do |f| %>

    Name: <div id='name'><%= f.text_field :name %></div><br/>
    Email: <div id='email'><%= f.text_field :email %></div><br/>
    Phone Number: <div id='phone_number'><%= f.text_field :phone_number%></div><br/>
    <%= f.submit "Normal Submit", name:'normal' %>
    <%= f.submit "Ajax Submit" %>

<% end %>
</div>

アプリ/コントローラー/user_controller.rb:

class UsersController < ApplicationController

def new
    @user = User.new
end

def create
    @user = User.new(params[:user])
    if params[:normal]
        render :partial => "layouts/user"
    end
end

編集: これは奇妙なタスクのように思えるかもしれませんが、両方の方法で実行できることを示すために与えられた割り当てでした。AJAX送信と通常の送信を別々に行う方法は知っていますが、フォームに2つの送信があると混乱します! :)

4

2 に答える 2

1

クリックまたは送信をリッスンする JS を作成して、その ajax $.ajax が ajax の場所にある場合は JS にルーティングしてください。

于 2012-06-22T16:01:34.403 に答える
0

2 つの送信ボタンは必要ないと思います。ajax ボタンで $.ajax メソッドを呼び出すだけで、データを送信できます。

$('#formid').submit()別の方法として、フォームを ajax に変換した後にajax ボタンを呼び出すこともできます。これはおそらく 2 つの方法の中で簡単です。

于 2012-06-22T15:45:27.010 に答える