jQuery 验证器在同一字段上验证两种格式

jQuery Validator validating two formats on same field

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

  1. dd/mm/yyyy
  2. mm/dd/yyyy

我不知道是什么导致了这个问题,因为我已经禁用了我的规则,所以现在它正在根据 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

您的代码:

jsfiddle.net/vomu9rf7

12/12/2018 有效,但 31/12/201812/31/2018 均无效。这是因为你的内联 class 属性包含 date,它会自动触发 jQuery Validate 的 date 方法。由于您还声明了 dateITA,该插件同时对您的字段应用了两个不同的日期规则...... datedateITA 相互冲突。

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

演示:jsfiddle.net/r1kwjv35/