2013-03-04 54 views
0

複製HTML元素更好,我有一種形式是這樣的:哪種方式是通過jQuery的

<form:form name="ExpenseDetails" method="Post" 
    action="ExpenseDetailsForm.html"> 
    <table id="Parent1_Table"> 
     <tbody> 
      <tr> 
       <td> 
        <table id="Item1_Table1"> 
         <tbody> 
          <tr> 
           <td>Item</td> 
           <td><input type="text" name="Item1" id="Item1" required /></td> 
          </tr> 
          <tr> 
           <td>Expense in Rs</td> 
           <td><input type="text" name="ItemValue1" id="ItemValue1"></td> 
          </tr> 
         </tbody> 
        </table> 
       </td> 
       <td> 
        <table id="Item1_Table2"> 
         <tbody> 
          <tr> 
           <td><button name="Edit1" id="Edit1">Edit</button></td> 
           <td><button name="Duplicate1" id="Duplicate1">Duplicate</button></td> 
           <td><button name="Trash1" id="Trash1">Trash</button></td> 
          </tr> 
         </tbody> 
        </table> 
       </td> 
      </tr> 
     </tbody> 
    </table> 
</form:form> 

在點擊duplicate1按鈕,我想創建另一個table有相同的元素作爲的Parent1_Table並追加它。

這樣做我有2個解決方案,記住:

1)找到在其中點擊duplicate button位於工作臺,
獲取元素的所有id和推棧,
獲取表中的整個HTML,
複製整個table元件和由1

2)創建不變的的相同的元件遞增ids後追加到原始點擊duplicate按鈕中的0,
提交後,計算文本元素的no:並使用它們。

以上哪個解決方案易於開發?
任何人都可以請幫助我選擇其中之一?
請讓我知道你是否需要關於這個問題的更多細節。

+1

您的問題沒有明確定義,因爲「易於開發」顯然取決於個人的專業知識和經驗。我會使用http://api.jquery.com/clone和http://api.jquery.com/append - 不要忘記更新兩者之間的ID。你想複製這個表單一次,還是多次? – Blazemonger 2013-03-04 15:22:32

+0

@Blazemonger我嘗試了clone和append方法,它將元素添加到'parent1_table'元素中。通過提問,我的意思是更簡單的方法。 – Freakyuser 2013-03-04 15:25:37

+0

你確實說過「獲取表格的整個HTML」。這包括其內容。如果這不是你想要的,那麼解決方案(2)可能會更好。 – Blazemonger 2013-03-04 15:26:27

回答

1

「最佳」問題總是很棘手。

我會避免使用在每當我面對的每一行上,即重複控制所有id。最多這個行會有一個id(並且經常不會),但是我會在其他人中使用一個類,這不僅僅是因爲它與事件委託很好地配合。

+0

但是如果沒有這個id,在提交之後如何找到元素的值會更容易些? – Freakyuser 2013-03-04 15:31:34

+0

@Freakyuser:'id'不用於表單提交,這就是'name'的用途。在每個字段上使用相同的「名稱」,並且您收到的內容將是具有該名稱的每個字段的內容列表。 (列表的形式取決於你的服務器端技術。)使用相同的'name'控制它是很好的;只有'id'必須是唯一的。例如:將'id =「Item1」'改爲'name =「Item」'和'id =「ItemValue1」'改爲'name =「ItemValue」'。當你得到表單時,你會得到'Item'字段中的值列表和'ItemValue'字段的另一個列表。這些列表中具有相同索引的條目相互關聯。 – 2013-03-04 15:33:37

+0

你的意思是說這個名稱對於不同的元素可以是相同的,我們可以在控制器中獲得它們的值?可能嗎?我不知道這.. – Freakyuser 2013-03-04 15:42:28