2012-11-08 178 views
1

我有一個代碼示例最好的解釋的問題:值輸入字段

我有以下VIEW.jsp

<c:forEach var="widget" items="${widgets}"> 
     <div class="drag"> 
      <p>Id: ${widget.id}</p> 
      <input class="editWidget" type="image" src="/tis/img/icons/edit.png" alt="Edit widget"> 
      <input class="idWidget" type="hidden" value="${widget.id}"> 
     </div> 
</c:forEach> 

<div id="editDialog" title="Edit widget"> 
    <fieldset> 
     <input class="editWidgetId" type="hidden" value="??" id="editWidgetId"> 
    </fieldset> 
</div> 

editWidgetId應該有它的「價值」屬性在foreach循環內填充idWidget的值。對於循環中的每個元素,此值應該不同(元素由編輯按鈕選擇)。

的問題:

  1. 我怎樣才能得到一個輸入字段的值到另一個輸入字段?
  2. 如何在存在foreach循環時執行此操作?

在此先感謝

回答

1

給你想要的動態行爲,這項工作要在客戶端通過JavaScript作爲在服務器端,你有許多部件一個執行 editDialog並缺少客戶端用戶事件來作出決定。

你想要做的是指定功能的處理程序(或下面的示例所示聲明),以每editWidget改變editWidgetId輸入框與適當的值值:

<input onclick="document.getElementById('editWidgetId').value = '${widget.id}'" class="editWidget" type="image" src="/tis/img/icons/edit.png" alt="Edit widget" > 

沒有測試這個,但我希望你有想法

+0

謝謝你的回答。我明白了,但我希望你能幫助我做一些調整。我希望在Java代碼中擁有document.getElement ........部分,因爲具有多個字段會使onclick值非常複雜。在Java代碼中,'$ {widget.id}'變成了一個字符串,而不是一個值。 Java版本的外觀如何? –

+0

@JohnHendrik,我以爲你想要的部件ID。上面的代碼出現在您的JSP頁面中。您的JSTL符號將通過JSP預處理器(Java)進行處理,並且對於每個輸出節它將呈現onclick事件。您是否嘗試過運行並查看頁面的來源? – cbayram

+0

你假設沒錯。我實施了你所建議的解決方案,它的工作非常完美代碼仍然很乾淨,所以我很高興。非常感謝你:) –