Как асинхронно отправить форму при нажатии на элемент управления в стиле Ajax? - PullRequest
0 голосов
/ 10 марта 2011

В приложении Rails3 у меня есть логический атрибут root, представленный радиоуправлением (, а не флажок ), и я хочу иметь возможность автоматически сохранять новое значение root - Ajax-style.

<%= form_tag(set_root_project_page_path(@project, page), :remote => true, :method => :put ) do -%>
  <%= radio_button_tag('root', page.id, page.root?, :onclick => "this.form.submit();") %>
  <%= submit_tag 'set root', :disable_with => 'wait...' %>
<% end -%>

У меня есть 2 варианта отправки:

  1. submit_tag работает как положено: действие вызывается через XHR, и мой шаблон set_root.js.erb обновляетсясоответственно, , но Я не хочу нажимать отдельную кнопку для этого, поэтому я попытался:
  2. , добавив :onclick => "this.form.submit();" к своему радиоуправлению.Это отправляет форму, но в классическом, не-AJAX-формате, поэтому я получаю сообщение об ошибке за отсутствием шаблона html .

Что мне нужно сделать, чтобы отправить формуасинхронно при нажатии на радиоуправление, ( может быть подход UJS )?

Примечание: я использую jQuery в своем проекте.

Ответы [ 2 ]

1 голос
/ 10 марта 2011

попробуй :onclick => "$(this.form).trigger('submit.rails')

0 голосов
/ 10 марта 2011

Использовать сериализацию формы: http://api.jquery.com/serialize/

...