Отправка формы рельсов по выбору переключателя - PullRequest
2 голосов
/ 11 мая 2009

У меня есть следующая форма рельсов (которая работает), но я хочу удалить submit_tag и отправить форму, как только будет выбран переключатель Как мне это сделать?

<% form_tag({ :controller => "votes", :action => "create", :id => @item.id } ) do  %>
  <p>
    <% for i in 1..10 do %>
      <%=  radio_button_tag :rating, i %>&nbsp;<%=h i %>&nbsp;
    <% end %>
  </p>
  <p>
    <%= submit_tag "Create" %>
  </p>
<% end %>

Ответы [ 5 ]

8 голосов
/ 11 мая 2009

Так что я нашел точное решение (спасибо за вводные ребята, это помогло мне переопределить мои поиски в Google). Все были на правильном пути, но никто не был на месте.

Все, что было нужно, это добавить 'false,: onclick => "this.parentNode.submit ();" "в помощник по форме radio_button_tag. Ложь выбрана или нет, а остальное очевидно.

Теперь правильное решение выглядит так:

<% form_tag({ :controller => "votes", :action => "create", :id => @item.id } ) do  %>
    <% for i in 1..10 do %>
      <%=  radio_button_tag :rating, i, false, :onclick => "this.parentNode.submit();" %>&nbsp;<%=h i %>&nbsp;
    <% end %>
<% end %>
1 голос
/ 14 сентября 2013

Я делаю что-то подобное, поэтому этот вопрос действительно помогает.

В дополнение к ответу Эша я обнаружил, что вышеупомянутая функция onclick не работает, я немного изменился, и приведенная ниже форма прекрасно работает для меня:

<% form_tag({ :controller => "votes", :action => "create", :id => @item.id } ) do  %>
    <% for i in 1..10 do %>
      <%=  radio_button_tag :rating, i, false, :onclick => "this.form.submit();" %>&nbsp;<%=h i %>&nbsp;
    <% end %>
<% end %>

Надеюсь, это кому-нибудь поможет.

1 голос
/ 11 мая 2009

Вы захотите добавить событие onClick к вашей радиокнопке, которая вызывает this.formName.submit (), где formName - идентификатор вашей формы. Это вызовет событие отправки, когда вы нажмете переключатель.

0 голосов
/ 11 мая 2009

Потрясающий способ достичь этого незаметно с lowpro и прототипом. Таким образом, вы можете поместить все ваши обработчики событий в свой javascript, чтобы они не загрязняли ваш код представления. Это очень удобный способ обработки событий JavaScript. Настоятельно рекомендуется.

0 голосов
/ 11 мая 2009

Использовать Javascript

Используйте событие каждого переключателя onclick () для вызова функции, которая вызывает submit () для кнопки отправки.

Я не очень знаком с RJS в Rails, но это должно быть относительно просто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...