首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用jQuery验证完全验证日期时间

使用jQuery验证完全验证日期时间
EN

Stack Overflow用户
提问于 2011-11-23 11:16:07
回答 2查看 1.4K关注 0票数 0

我使用内置的jQuery验证

代码语言:javascript
运行
复制
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

到目前为止,所有字段都可以正常工作,但日期时间除外。这没问题,但不是傻瓜的证据。我只能输入数字和斜杠。

但这意味着我可以输入3/4//4///4//,当然它在submit上返回一个空参数,因为它不再适合日期时间。(我确实使用了一个数据报警器来选择这个选项,但是您仍然可以输入该框。)

所以我需要:

  • 可以确保它是##/##/####格式的
  • ,也可以防止手动输入框,只使用日期选择器
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-23 11:50:57

最后,我在模型上使用了Regex属性:http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.regularexpressionattribute.aspx

代码语言:javascript
运行
复制
[RegularExpression(@"^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$", ErrorMessage = "Must be a valid date of format dd/mm/yyyy.")]

这将在dd/mm/yyyy窗体上验证,并确保有效日期,包括闰年。

编辑:

进行这种验证的一个更好的方法是自定义验证属性。http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.customvalidationattribute.aspx

谷歌它的教程。

票数 1
EN

Stack Overflow用户

发布于 2011-11-23 11:27:13

您可以使用框的readonly属性,但是它仍然允许用户突出显示文本进行复制等。我通常更喜欢使用禁用的属性,因为这样可以防止用户操作或使用框。使用禁用的唯一缺点是,该框将不会在提交表单时提交,但如果这不是一个问题,那么我更愿意使用该属性。

另一个选项是编写自己的javascript函数来执行验证。我有一个很久以前写过的,如果你想用那个方法的话,我可以帮你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8241246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档