2011-06-07 94 views
1

感謝您花時間閱讀本文。Ruby on Rails構建簡化表

我試圖建立一個接受多個成員的窗體。它從3個成員開始,然後有一個JavaScript按鈕添加一個成員,最多有100個成員。我可以想出如何做到這一點的唯一方法是通過硬編碼所有表單元素,如下1..100(我只顯示1-4),然後隱藏所有的額外內容。 javascript按鈕然後只顯示下一個元素。有沒有一種方法可以在JavaScript中生成表單元素?或者有沒有辦法使用循環來創建100個硬編碼的元素?

<tr id="member_1"> 
     <td></td> 
     <td class="field"><%= text_field(:members, :member_1_name, :value=>@members[:member_1_name]) %></td> 
     <td class="field"><%= text_field(:members, :member_1_number, :value=>@members[:member_1_number]) %></td> 
    </tr> 
    <tr> 
     <td></td> 
     <td class="heading">Member Names</td> 
     <td></td> 
    </tr> 
    <tr id="member_2"> 
     <td></td> 
     <td class="field"><%= text_field(:members, :member_2_name, :value=>@members[:member_2_name]) %></td> 
     <td class="field"><%= text_field(:members, :member_2_number, :value=>@members[:member_2_number]) %></td> 
    </tr> 
    <tr id="member_3"> 
     <td></td> 
     <td class="field"><%= text_field(:members, :member_3_name, :value=>@members[:member_3_name]) %></td> 
     <td class="field"><%= text_field(:members, :member_3_number, :value=>@members[:member_3_number]) %></td> 
    </tr> 
    <tr id="member_4" style="display:none"> 
     <td></td> 
     <td class="field"><%= text_field(:members, :member_3_name, :value=>@members[:member_3_name]) %></td> 
     <td class="field"><%= text_field(:members, :member_3_number, :value=>@members[:member_3_number]) %></td> 
    </tr> 

再次感謝!讓我知道如果事情是不明確和諸如此類的東西

+0

這些成員是否爲activerecord對象?他們有共同的父母嗎? – tjeden 2011-06-07 07:47:00

+0

不,他們不是我在控制器上做了一堆處理,然後將它們添加到數據庫中 – Cypher 2011-06-07 19:34:34

回答

0

您應該只創建第一個成員,並在頁面上放置帶有模板的隱藏div。 Javascript按鈕應該使用這個模板並且用它插入新的字段。請參閱:http://embeddedjs.com/