【问题标题】:Wrong required validation for datepicker input field日期选择器输入字段所需的验证错误
【发布时间】:2019-02-18 10:44:24
【问题描述】:

我正在以dd/mm/yyyy 格式输入出生日期并使用 datepicker 插件

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

而日期类的jQuery是

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

当我使用 jQuery Validate 验证输入字段时,出现错误“请输入有效日期”。仅适用于 dd/mm/yyyy 格式,而适用于 mm/dd/yyyy 格式

$("#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 字段时收到此错误?

【问题讨论】:

    标签: jquery datepicker jquery-validate


    【解决方案1】:

    “为什么我只在验证必填字段时收到此错误?”

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

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

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

    【讨论】:

    • 感谢@Sparky.. 我已将日期类更改为 input_date,它解决了我的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    相关资源
    最近更新 更多