2011-06-23 49 views
2

我有一個Wicket窗體。在這個表單中有幾個輸入標籤。這些輸入標籤被放入div容器中。這些div容器「製造」了樣式(即它們具有樣式類別)。 如果孩子輸入的驗證失敗,我想訪問這個div標籤的樣式。我試圖用Behavior來做到這一點,但我無法訪問div標籤(這將是輸入標籤的父項)。任何想法如何我可以修改父div標籤的風格,如果驗證失敗?修改Wicket ComponentTag的屬性父母

<div style="myStyle"> 
    <label>Field1</label> <input type="text"/> 
</div> 

感謝

回答

6

首先第一件事情:在檢票只需修改組件的標記。當然,您網頁上的所有內容都是某個組件的標記,最糟糕的是您的Page類。

但你肯定不想修改你的頁面類生成它的輸出的方式。這意味着你必須讓你的div包含一個組件。

<div wicket:id="myInputContainer"> 
    <label>Field1</label> <input wicket:id="myInput" type="text"/> 
</div> 

而且因爲沒有您需要的容器做更多的功能,在Java代碼中使用WebMarkupContainer類。

WebMarkupcontainer cont = new WebMarkupContainer("myInputcontainer"); 
cont.add(new Textfield("myInput")); 
form.add(cont); 

,從這裏很容易,你可以將你的Behavior到容器和鮑勃是你的叔叔。

+2

如果你發現自己做了很多,這是一個自定義面板的絕佳機會。表單元素需要標籤,字段,驗證指標,樣式等我有一個FormComponentContainer面板,預計有一些FormComponent裏面(TextField,Radio等),並提供以上所有。很有用。 – jbrookover

+0

非常好的一點。將它作爲泛型類寫入也是有用的,參數類型是包含在其中的「FormComponent」的類。 – biziclop