在单选按钮选择上提交Rails表单

时间:2009-05-11 02:27:31

标签: javascript ruby-on-rails ruby

我有以下rails表单(有效)但我想删除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 个答案:

答案 0 :(得分:8)

所以我找到了精确的解决方案(感谢输入人员,它帮助我重新定义了我的Google搜索)。每个人都在正确的轨道上,但没有一个人在现场。

所需要的只是添加'false,:onclick =&gt; “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 :(得分:1)

您需要将onClick事件添加到调用this.formName.submit()的单选按钮,其中formName是您的表单ID。当您单击单选按钮时,这将触发提交事件。

答案 2 :(得分:1)

我正在做类似的事情,所以这个问题确实有帮助。

除了Ash的答案之外,我发现上面的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 %>

希望它会对某人有所帮助。

答案 3 :(得分:0)

使用Javascript

使用每个单选按钮的onclick()事件来调用在提交按钮上调用submit()的函数。

我对Rails中的RJS并不熟悉,但这应该相对容易。

答案 4 :(得分:0)

实现这一目标的一个很棒的方法是使用lowpro和prototype。这样您就可以将所有事件处理程序都放到javascript中,这样它们就不会污染您的视图代码。这是处理javascript事件的一种非常流畅的方式。强烈推荐。