我在我的Rails應用程序中有兩種形式。它們都存在於單獨的選項卡中,當我提交一個表單時,我希望另一個表單中的數據也被保存。我應該怎麼做?或者有沒有更好的方法來做到這一點,而不是使用兩個單獨的表單?是否有更好的方式將長表單分散到多個選項卡中,並且當我按下提交所有選項卡中的所有數據時應該達到我的操作。謝謝。兩種形式具有相同的動作
2
A
回答
5
您可以展開一個表單來覆蓋這兩種表單的所有元素。
只要表單標籤符合X/HTML標準,這就完全可以。
<form action='action1'>
<!-- All elements from both forms, plus tabs, etc. -->
</form>
要考慮的唯一的事情是,如果有將永遠是那個區域,將需要去到另一個動作中的另一種形式。例如,如果添加第三個選項卡,則在其他兩個選項卡之間添加第三個選項卡,這將具有不同的操作。
你不想落得像:
<form action='action1'>
<!-- elements from the combined forms -->
<form action='action2'>
<!-- elements for a totally different form, not valid inside another form -->
</form>
<!-- more elements from the combined forms -->
</form>
在這種情況下,這將是更好鞏固在提交使用JavaScript時兩種形式。
jQuery(jquery.com)會使這非常容易。例如,您可以序列化兩個表單,然後將它們連接起來並通過post或get將結果發送到服務器。
請參閱http://docs.jquery.com/Ajax/serialize。
可能有更好的方法來做到這一點,但我想不出任何我的頭頂。
1
我無法測試,如果這個概念作品的權利,但我相信,你可以使用jQuery實現這一目標,其提交功能將攔截任何選項卡上的所有表單提交,東西沿着這些線路
$("form").submit(function(event){
event.preventDefault();
//serialize forms here and submit using jquery post
});
0
你應該看看fields_for方法。你可以做這樣的事情:
<% form_for @house do |f| %>
<%= f.text_field :square_feet %>
<% fields_for @listing do |s| %>
<%= s.hidden_field :id %>
<%= s.text_field :asking_price %>
<% end %>
<%= f.submit %>
<% end %>
然後在你的控制你會做這樣的事情:
house = House.find(params[:id])
house.update_attributes(params[:house])
listing = Listing.find(params[:listing][:id])
listing.update_attributes(params[:listing])
這是一個更新,但你可以做任何你在那裏想。
相關問題
- 1. 具有相同FormGroup的兩種形式?
- 2. 在asp.net中具有相同輸入ID的兩種形式mvc
- 3. MVC視圖有兩種形式,爲什麼都呈現相同的動作?
- 4. 一種形式的兩種不同的動作
- 5. 一種形式的兩個動作
- 6. 一種形式的兩個動作
- 7. 創建具有相同的z順序爲另一種形式
- 8. SoapException具有相同的消息但具有不同的形式
- 9. 搜索具有相同活動的兩種產品
- 10. 2種不同的動作形式
- 11. 如何製作兩種相關模型的一種形式?
- 12. 具有兩種不同功能的按鈕在一種形式中
- 13. 具有相同名稱屬性的一種形式的不同選擇?
- 14. 具有相同ID的Android兩種不同的SharedPreference類型
- 15. 德爾福:以兩種不同的形式顯示相同的圖形
- 16. 一種形式,一種按鈕,兩種動作?
- 17. 兩種不同形狀的BSTS威爾陣列形式總是具有不相等的陣列
- 18. 的Prestashop有兩種動作有兩個條件相同的車規則
- 19. Drupal 6上的form_set_error使用兩種相同的形式
- 20. 兩者形成具有相同的查詢,但不同返回
- 21. 使用上兩種不同的形式
- 22. 兩種不同形式的圖像盒
- 23. 我想爲兩頁有兩種不同的形式
- 24. Rails中提交兩種形式共享相同的PARAM
- 25. C#兩種形式訪問相同的類數據
- 26. 兩種形式使用相同的布爾值
- 27. 兩種形式互相咬合
- 28. Inkspace:如何具有多種形狀完全相同的梯度
- 29. 具有兩種幾乎相同的方法的Java抽象類
- 30. 多種動作形式