日期选择器输入字段所需的错误验证

Wrong required validation for datepicker input field

我正在输入 dd/mm/yyyy 格式的出生日期并使用日期选择器插件

<input type="text" id="birth_date" name="birth_date" value="" class="form-control date">

日期 class 的 jQuery 是

$('.date').datepicker({
    todayBtn: "linked",
    keyboardNavigation: false,
    forceParse: false,
    calendarWeeks: true,
    autoclose: true,
    format: 'dd/mm/yyyy'
});

当我使用 jQuery Validate 验证输入字段时,它仅对 dd/mm/yyyy 格式给出错误 "Please enter a valid date.",而对 mm/dd/yyyy 格式[=17] 则工作正常=]

$("#frm").validate({
    rules: {
        first_name: { required: true },
        date_of_birth: { required: true }
    },
    messages: {
        first_name: { required: 'Please enter first name' },
        date_of_birth: { required: 'Please select the date of birth' }
    },
    errorPlacement: function (error, element) {
        error.insertAfter(element);
    },
    submitHandler: function(form) {
        form.submit();
    }
});

我只验证 required 字段,为什么会出现此错误?

"Why I am getting this error as I am only validating for required field?"

jQuery 验证插件可以通过多种方式获取规则,包括但不限于...

  • .validate() 方法的 rules 对象中声明。
  • HTML5 内联属性,例如 required="required".
  • Class 名称,例如 class="required".

当您在 input 字段上使用 class="date" 时,您正在调用 jQuery 验证插件中的 date 规则。从 input 中删除 date class。如果您依赖 date class 的视觉样式,则必须将此 class 的名称更改为其他名称。