我正在试验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