2012-07-09 64 views
4

我正在試驗HTML5。我想知道的是Wicket如何處理HTML5輸入類型,如日期和電子郵件,如果有的話?目前Wicket使用java腳本爲日期輸入生成日曆。如何在門票中使用html5日曆輸入類型

Wicket如何處理不支持類型爲date的HTML5輸入標籤(以及其他新的HTML5標籤)的瀏覽器。

回答

4

Wicket(1.5及以上)不支持輸入類型='日期'或開箱即用的類似結構。 Wicket擴展中有DateTextField,但它沒有指定type='date'(還)。我建議創建自己的實現,以正確設置類型屬性(我猜爲什麼他們沒有被添加到該字段是它會破壞現有的應用程序)。

還有EmailTextField,NumberTextFieldothers。這些添加類型屬性並驗證服務器上的輸入。

不支持HTML5輸入的瀏覽器回退到type='text',因此對於Wicket的觀點來說,沒有什麼不同。 Wicket仍然會根據設定的規則驗證輸入。

+0

Thanks Martijn。我猜HTML5的拖放功能在Wicket中不起作用,因爲它可能會破壞組件層次結構。 – sardo 2012-07-09 12:34:19

0

你只需要覆蓋的方法文本字段#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"; 
      }   
     }; 
相關問題