首页 > 解决方案 > jQuery Validator 在同一字段上验证两种格式

问题描述

我有一个包含多个日期字段的表单,每个字段都有唯一的名称和 id 字段。我想验证日期为dd/mm/yyyy。我正在使用php codeigniter基于 cms fuelcms的自动生成具有验证器数据属性的日期字段。我已经设置了验证 dateITA 格式(dd/mm/yyyy)的规则,但是当我输入日期时,它似乎检查了两种格式:

  1. 日/月/年
  2. 月/日/年

我不知道是什么导致了这个问题,因为我已经禁用了我的规则,所以现在它正在针对mm/dd/yyyy进行验证,我不知道它在哪里设置该规则,因为默认值是 dateISO (yyyy-mm-dd )。

我怎样才能达到预期的效果?

HTML

<input type="text" name="date_of_birth" value="" 
    class="datepicker field_type_date date hasDatepicker" size="12" 
    placeholder="dd/mm/yyyy" required="" data-date_format="dd/mm/yy" 
    data-first_day="0" data-show_on="focus" id="date_of_birth" autocomplete="bday" 
    aria-required="true">

JS

$('#job-form').validate({
    errorClass:'small text-danger',
    rules: {
        date_of_birth: {
            dateITA: true
        }
    }
});

#job-form是表单的id

标签: jqueryjquery-validatedate-format

解决方案


你的代码:

jsfiddle.net/vomu9rf7

12/12/2018是有效的,但两者31/12/201812/31/2018无效。这是因为你的内联class属性 contains date,它会自动触发datejQuery Validate 的方法。由于您还声明dateITA,该插件同时将两个不同的日期规则应用于您的字段......date并且dateITA它们彼此冲突。

删除date类,dateITA规则工作正常:

演示: jsfiddle.net/r1kwjv35/


推荐阅读