2011-05-01 77 views
0

提交特定表单数据我无法弄清楚如何通过jQuery submit()方法将特定数据提交给Rails update()方法。这是代码片段我的工作:使用RoR link_to和jQuery submit()

<% form_for(vote, :remote => true) do |f| %> 
    <%= check_box_tag "selection", vote.id %> 
<% end %> 

... 

<%= link_to 'Vote Yes', ballots_path, :onclick => "$('.edit_vote').submit()", :class => "buttons" %> 
<%= link_to 'Vote No', ballots_path, :onclick => "$('.edit_vote').submit()", :class => "buttons" %> 

本质上有一个名为“审批”的投票表中的布尔字段,我想通过以上(投赞成票的两个环节来更新这个字段 - >批准=真;投票否 - >批准=假)。

本来我有<%= check_box_tag“选择”,vote.id%>为<%= f.check_box:approval%>,我可以使用Yes/No按钮提交表单,但这不是功能I通缉。我需要“是/否”按钮才能成为审批值,复选框仅在那里,因此用户可以选择要投票的实体。

这是我想要做的一个画面:http://i.stack.imgur.com/QZqnw.png

,我怎么会去这样做的任何想法?

回答

3

可能是因为它是使用自定义onsubmit操作的远程表单。我在Google上发现了关于如何在提交按钮上点击而不是提交表单本身的提示。像这样:

:onclick => "this.form.submit.click();" 

这是假设有一个提交按钮,名称为“submit”。如果您没有提交按钮,您可以随时添加一个并将显示设置为无以隐藏它,如下所示:

<%= submit_tag 'Opslaan', :name => 'submit', :style => 'display: none;' %> 
0

jQuery .submit()方法只是触发表单上的'submit'事件。换句话说,它与点击该表单中的“提交”按钮相同。我假设你有一个包装整个列表的表格,其编号为edit-vote

乍一看,它看起来像你的第一个问题是,你可能在这里嵌套form标签。表单标签不允许嵌套,如果你这样做,如果他们工作,你会得到一些奇怪的和意想不到的行为。

尝试简单地删除每个复选框周围的form_for。只要你的update方法被写入接受你发布的数据应该工作。