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

Posted

技术标签:

【中文标题】jQuery 验证插件日期格式:日期干扰 dateITA【英文标题】:jQuery validate plugin date format: date interferes with dateITA 【发布时间】:2012-10-11 08:17:27 【问题描述】:

我正在为一个商业网站构建一个后端数据库 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”,然后当我完成输入日期时,字段验证成功。

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

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

【问题讨论】:

【参考方案1】:

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

我有一个 class="date" 分配给似乎自动触发日期方法的字段(仅用于我的 css)。

【讨论】:

完全正确 - jQuery Validate 检查分配给表单中输入的所有类,如果它们存在验证方法,则设置它。例如,class="required" 也可以。【参考方案2】:
rules: 
            DueDate: 
                required: true,
                date:false,
                dateITA: true 
            
        ,

【讨论】:

以上是关于jQuery 验证插件日期格式:日期干扰 dateITA的主要内容,如果未能解决你的问题,请参考以下文章

jQuery验证插件 Validate详解

使用 jQuery 验证插件自定义日期格式

带有 jquery datepicker 错误的 jquery 验证插件(请输入有效日期)

jQuery dd/MM/yyyy 日期格式验证

使用 jQuery 插件自动格式化结构化数据(电话、日期)(或无法使用原生 JavaScript)

jquery多日期选择插件easyui date