Отправка рельсов remote_form с внешней кнопкой отправки - PullRequest
2 голосов
/ 04 марта 2010

Я пытаюсь отправить форму рельсов, используя триггер отправки, который находится за пределами тегов формы.Итак, у меня есть моя форма:

<% remote_form_for Package.new, 
:url => { :action => :rate_shop, :ids_sales_order_id => params[:ids_sales_order_id],
:id => @shipment.id }, :loading => '$("#loading").overlay({api: true}).load(); ' + visual_effect(:appear, 'priceShopInProgress'), 
:complete => visual_effect(:fade, 'priceShopInProgress', :duration => 2), 
:update => 'itemSelection' do |f| %>

И у меня есть мой jQuery:

$('#priceSelectSubmit').click(function() {
  $('#new_item').submit();
});

И мой триггер:

<%= submit_tag :Submit, :value => 'Select item', :id => 'priceSelectSubmit', :name => 'priceSelectSubmit' %>

Вот сделка.Кнопка отправки правильно отправляет форму (и загружает новую страницу со всеми нужными данными), но не запускает форму, как если бы кнопка находилась внутри тегов формы (в частности, очень важен материал загрузки).Мне нужен ответ AJAX и оверлей для загрузки и т. Д.

Мои ограничения:

  • Необходимо использовать jQuery с Rails
  • Кнопка отправки не может быть в форме
  • Я не являюсь основным программистом в этом (он не работает), поэтому я не знаю, является ли это простой настройкой моего jquery для правильного запуска формы или требует перемещения«действие» выводится из тега формы в функцию jquery.Какие-нибудь мысли?Очень ценится!

Ответы [ 2 ]

2 голосов
/ 04 марта 2010

Хорошо, так что я понял это из повторного поиска в Google. И спасибо Тэдман за то, что отправил меня по правильному пути!

$('form').trigger('onsubmit')

Вот так jQuery позволяет вам отправлять форму, как если бы пользователь нажал "Отправить".

0 голосов
/ 04 марта 2010

Вместо этого вы можете попробовать использовать вызов onsubmit ():

$('#priceSelectSubmit').click(function() {
  $('#new_item')[0].onsubmit();
});

Функция onsubmit вызывается, когда вы «отправляете» форму с помощью действия пользователя, но обычно игнорируется при непосредственном вызове метода submit в форме.

Если вы просматриваете фактический сгенерированный HTML, вы можете увидеть Ajax-вызов внутри блока onsubmit = "...".

Редактировать : исправлено удаление ссылки на прокси-объект jQuery.

...