【问题标题】:ASP.NET AJAX toolkit MaskEditExtender Date autocomplete maskASP.NET AJAX 工具包 MaskEditExtender 日期自动完成掩码
【发布时间】:2012-05-16 03:19:52
【问题描述】:

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

有什么建议吗?

我的解决方案:

所以,自动完成很糟糕。您可能必须编写一些 JS 将 19 放在 YY 前面,因为它只是附加 00。所以您会得到“07/06/0088”...

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

“1988 年 7 月 6 日”

没有别的。因此,我编写了一个自定义验证器,将零填充到月份和日期,并将 19 填充到年份。此外,当我使用 txt 框的值时,我必须复制相同的修复程序才能将其转换为 datetime 而不会引发异常。

【问题讨论】:

  • 发布您的代码会很有帮助,以便其他人可以看到您所做的工作并了解其工作原理。

标签: asp.net .net-2.0 ajaxcontroltoolkit


【解决方案1】:

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

【讨论】:

  • 是的。请参阅我对问题的编辑以获取我的解决方案。如果有更好的方法,我想知道,但这对我有用。感谢您的帮助。
猜你喜欢
  • 2017-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多