4

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

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

4

2 回答 2

4

Wicket(1.5 及更高版本)不支持 input type='date' 或开箱即用的类似构造。Wicket Extensions 中有一个DateTextField,但它没有指定type='date'(还)。我建议创建您自己的实现来正确设置类型属性(我猜测为什么它们没有被添加到该字段是它会破坏现有的应用程序)。

EmailTextFieldNumberTextField等。_ 这些添加类型属性并验证服务器上的输入。

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

于 2012-07-09T12:22:43.220 回答
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";
            }           
        };
于 2016-07-13T17:07:14.987 回答