我使用内置的jQuery验证
<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上返回一个空参数,因为它不再适合日期时间。(我确实使用了一个数据报警器来选择这个选项,但是您仍然可以输入该框。)
所以我需要:
##/##/####
格式的发布于 2011-11-23 11:50:57
最后,我在模型上使用了Regex属性:http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.regularexpressionattribute.aspx
[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
谷歌它的教程。
发布于 2011-11-23 11:27:13
您可以使用框的readonly属性,但是它仍然允许用户突出显示文本进行复制等。我通常更喜欢使用禁用的属性,因为这样可以防止用户操作或使用框。使用禁用的唯一缺点是,该框将不会在提交表单时提交,但如果这不是一个问题,那么我更愿意使用该属性。
另一个选项是编写自己的javascript函数来执行验证。我有一个很久以前写过的,如果你想用那个方法的话,我可以帮你。
https://stackoverflow.com/questions/8241246
复制相似问题