我正在試驗HTML5。我想知道的是Wicket如何處理HTML5輸入類型,如日期和電子郵件,如果有的話?目前Wicket使用java腳本爲日期輸入生成日曆。如何在門票中使用html5日曆輸入類型
Wicket如何處理不支持類型爲date的HTML5輸入標籤(以及其他新的HTML5標籤)的瀏覽器。
我正在試驗HTML5。我想知道的是Wicket如何處理HTML5輸入類型,如日期和電子郵件,如果有的話?目前Wicket使用java腳本爲日期輸入生成日曆。如何在門票中使用html5日曆輸入類型
Wicket如何處理不支持類型爲date的HTML5輸入標籤(以及其他新的HTML5標籤)的瀏覽器。
Wicket(1.5及以上)不支持輸入類型='日期'或開箱即用的類似結構。 Wicket擴展中有DateTextField
,但它沒有指定type='date'
(還)。我建議創建自己的實現,以正確設置類型屬性(我猜爲什麼他們沒有被添加到該字段是它會破壞現有的應用程序)。
還有EmailTextField,NumberTextField和others。這些添加類型屬性並驗證服務器上的輸入。
不支持HTML5輸入的瀏覽器回退到type='text'
,因此對於Wicket的觀點來說,沒有什麼不同。 Wicket仍然會根據設定的規則驗證輸入。
你只需要覆蓋的方法文本字段#getInputType()並返回「日期」與你跳過從TextField組件的onComponentTag方法進行驗證。例如,如果你不想創建自己的組件,你可以使用這樣的匿名類:
DateTextField dob = new DateTextField("dob", dobModel){
private static final long serialVersionUID = 1L;
/* (non-Javadoc)
* @see org.apache.wicket.markup.html.form.TextField#getInputType()
*/
@Override
protected String getInputType()
{
return "date";
}
};
Thanks Martijn。我猜HTML5的拖放功能在Wicket中不起作用,因爲它可能會破壞組件層次結構。 – sardo 2012-07-09 12:34:19