2

我的应用程序中有一个 DateTextField 组件,我希望使用预定义的模式输入日期。我需要的模式是“yyyy-MM-dd”。我使用以下代码创建了 DateTextField。

    DateTextField dtf_ExpiryDate = DateTextField.forDatePattern("ExpDate", "yyyy-MM-dd");
    dtf_ExpiryDate.add(new DatePicker());

它有助于防止以大多数其他格式输入日期。但它接受 dd-MM-yyyy 格式的输入并将其转换为某种奇怪的格式。例如,12-06-2013会自动转换为0012-06-20

当日期在 dd-MM-yyyy 中给出时,有没有办法抛出错误?

DateTextField的 Javadocs说转换是使用 Joda 时间解析器在内部完成的。有没有办法添加更多的约束?

我真的不希望将数据捕获为字符串并添加一个 StringValidator 以检查它是否使用正则表达式确认模式。

谢谢

4

2 回答 2

1

据我所知,答案是否定的。DateTextField 在内部使用 DatePattern 或 DateStyles,并且不可能强制执行更严格的规则。如果您不想使用 Javascript(自定义)或 JQuery,则必须使用 REGEX 来验证输入。

看看这里。使用如下所示的 StrictPatternDateConverter 类对输入实施严格验证。

于 2013-07-15T12:44:00.987 回答
0

是的!StringRegExp 是一个很好的解决方案。但另一个解决方案可能是使用 jqWicket。它提供了一个 MaskedInputBehavior。看看:http ://code.google.com/p/jqwicket/wiki/MaskedInputExample

于 2013-07-10T06:26:43.483 回答