Rails: две разные кнопки "Отправить" в форме
Я пытаюсь создать простую форму с двумя разными кнопками отправки: одна, которая будет выполнять обычную отправку, а другая, которая будет выполнять отправку с помощью ajax и визуализировать частичную часть. Но я не уверен, как это сделать, потому что оба идут к одному действию создания. Я попробовал что-то вроде этого:
/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 ответа
Почему бы не написать какой-нибудь JS, который прослушивает щелчок или отправить, и вы направите его в JS, если его ajax $.ajax к местоположению ajax, иначе пропустите его нормально, если это не так, и не остановите распространение.
Я не думаю, что вам нужны две кнопки отправки. Пусть кнопка ajax просто вызовет метод $.ajax и отправит ваши данные.
Кроме того, вы могли бы вызвать кнопку AJAX $('#formid').submit()
после преобразования формы в ajax, используя любой метод, который вы используете для этого. Это, вероятно, самый простой из двух методов.