ASP.NET AJAX工具包MaskEditExtender日期自动完成掩码

时间:2011-12-16 14:41:33

标签: asp.net .net-2.0 ajaxcontroltoolkit

我正在使用asp.net ajax工具包maskeditextender来屏蔽日期输入的文本框。问题是,我无法让它验证它们正确输入的日期。如果我关闭自动完成掩码,他们输入7斜杠6斜杠88,它将填写“07/06/88”,这很有趣,不是一个有效的日期。如果我自动完成掩码,它应自动完成到“07/06/1988”,但它自动填充到“07/06/0088”,即使我将世纪设置为1900 ...

有什么建议吗?

我的解决方案:

所以,自动完成非常糟糕。你可能不得不写一些JS在YY面前放一个19,因为它只是附加00.所以你得到“07/06/0088”......

当回答者建议我关闭自动完成功能但仍然无法正确验证日期。我在date数据类型中使用了比较验证器。但事实证明它需要一种非常具体的格式:

“1988年7月6日”

,没有别的。所以,我写了一个自定义验证器,它将零填充到月和日以及19到年。此外,当我使用txt框的值时,我必须复制相同的修复程序,以便将其转换为datetime而不会抛出异常。

1 个答案:

答案 0 :(得分:1)

之前我见过这个问题,并且有一些不同的修复方法。您是否将MaskType设置为“Date”或“None”?如果您正在使用日期,则可能需要编写一些自定义代码以使用正确的数字自​​动完成。如果你使用的是None,你应该可以强制使用四位数年份,这将有效地消除自动完成问题。这可能是我建议你去的路线,因为你仍然可以将输入限制为数字并将输入验证为日期,但你不必担心它会自动完成错误的世纪。