2012-07-09 41 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"; 
      }   
     }; 
相关问题