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方法被寫入接受你發佈的數據應該工作。