jQuery验证插件日期格式:date干扰dateITA

时间:2012-10-21 07:34:17

标签: jquery validation datepicker

我正在为商业网站构建后端数据库UI,并且包含一些包含几个日期字段的表单。我在它们上使用jQueryUI datepicker(dateFormat:'dd / mm / yyyy')但是也可以在输入字段中输入日期,所以我也想验证输入(我知道还有另一个插件用于验证datepicker字段,但我想避免引入更多插件。

我一直在研究使用Chrome的语言环境设置来解决这个问题,并认为我已经解决了这个问题,但我也有一个我在其他任何帖子中都没有提到的不同问题。

我的客户很可能会通过Chrome验证此格式的日期,因此我使用了validate插件附带的additional-methods.js文件中的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”进行验证。

示例:我开始输入8/8/2012,当我输入错误消息时显示“日期格式dd / mm / yyyy”,然后当我完成输入日期时,字段验证成功。

但也有一些奇怪的事情发生了。如果我开始输入类似18/12/2012的日期内置日期:真正的验证方法启动并发出默认错误“请输入有效日期”。 (因为第18天的值未通过验证脚本)

使用dateITA附加方法时,如何停止默认日期方法验证字段并给我一个假阴性?

2 个答案:

答案 0 :(得分:7)

回答了我自己的问题......

我有一个class =“date”分配给该字段(仅适用于我的css),它似乎会自动触发日期方法。

答案 1 :(得分:0)

rules: {
            DueDate: {
                required: true,
                date:false,
                dateITA: true 
            }
        },