【发布时间】:2018-10-22 05:50:51
【问题描述】:
我已启用客户端验证,并在我的页面上引用了 jquery.validate.js 和 jquery.unobtrusive.ajax.js。我正在使用@Html.TextBoxFor() 在表单中创建输入。
客户端验证工作正常,日期除外。
如果我尝试输入字母,我会收到客户端错误,这很好。
如果我输入一个明显无效的日期,例如 02/77/2018,我会收到预期/期望的客户端错误,就像任何其他未通过验证的类型一样。
但是,如果我只输入一个整数作为日期(例如111),它就会通过验证。有谁知道为什么?
幸运的是,它没有通过控制器中的服务器端验证,但我所有其他验证都是在客户端完成的,我希望保持一致。我可以编写一些自定义代码来验证日期的格式,但似乎必须有一种更简单的方法来确保输入是MM/dd/yyyy 或MM-dd-yyyy 格式。
要重现该问题,请参阅this DotNetFiddle
- 在文本框中输入
A并跳出 - 显示错误消息 - 在文本框中输入
111并跳出 - 错误消息消失 - 在文本框中输入
11112018并跳出 - 错误消息再次出现 - 再次输入
111,错误信息消失 - 点击保存——表单提交并显示服务器端错误信息
【问题讨论】:
-
什么鬼? “111”通过验证,但“11112018”没有。
标签: jquery asp.net-mvc validation bootstrap-4