我正在为一个商业网站构建一个后端数据库 UI,并且有一些包含几个日期字段的表单。我在它们上使用 jQueryUI 日期选择器(dateFormat:'dd/mm/yyyy'),但也可以在输入字段中输入日期,所以我也想验证输入(我知道还有另一个插件用于验证日期选择器字段,但我想避免引入更多插件是可能的)。
我一直在研究解决 Chrome 的语言环境设置问题,并认为我已经解决了这个问题,但我也有一个不同的问题,我在任何其他帖子中都没有提到过。
我的客户很可能会使用不会验证这种格式的日期的 Chrome 来访问它,所以我使用了 validate 插件附带的附加方法中的 dateITA 文件。
function validate_newjob() {
$('#newjob').validate({
rules: {
DueDate: {
required: true,
dateITA: true
}
},
messages: {
DueDate: {
required: "* Required",
dateITA: "Date format dd/mm/yyyy"
}
},
errorClass: "formerror",
errorElement: "span",
errorPlacement: function(error, element) {
$(element).next().after(error);
}
});
}
这工作正常。日期在出错时使用我的消息“日期格式 dd/mm/yyyy”进行验证。
示例:我开始输入 2012 年 8 月 8 日,当我输入错误消息时显示“日期格式 dd/mm/yyyy”,然后当我完成输入日期时,字段验证成功。
但奇怪的事情也在发生。如果我开始输入像 2012 年 18 月 12 日这样的日期,则内置 date: true 验证方法会启动并发出默认错误“请输入有效日期”。(因为第 18 天的值没有通过验证脚本)
使用 dateITA 附加方法时,如何阻止默认日期方法验证字段并给我一个假阴性?