如何在wicket中使用html5日历输入类型

时间:2012-07-09 10:27:44

标签: html5 wicket wicket-1.5 wicketstuff

我正在尝试使用HTML5。我想知道的是Wicket如何处理HTML5输入类型,如日期和电子邮件,如果有的话?目前,Wicket使用java脚本生成日期输入的日历。

这个问题的复杂化是Wicket如何处理不支持date5类型的HTML5输入标记的浏览器(以及其他新的HTML5标记)。

2 个答案:

答案 0 :(得分:4)

Wicket(1.5及以后版本)不支持输入类型='日期'或开箱即用的类似结构。 Wicket Extensions中有DateTextField,但它尚未指定type='date'。我建议创建自己的实现,正确设置type属性(我猜他们为什么没有添加到字段中,它会破坏现有的应用程序)。

EmailTextFieldNumberTextFieldothers。这些添加了type属性并验证服务器上的输入。

不支持HTML5输入的浏览器会回退到type='text',因此从Wicket的角度来看,没有什么不同。 Wicket仍将根据设定的规则验证输入。

答案 1 :(得分:0)

您只需要覆盖方法TextField# getInputType()并返回“ date ”,并跳过对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";
            }           
        };