触发“请输入有效日期”的地方。在jquery.validate.js中

时间:2017-01-03 03:09:58

标签: javascript jquery validation date datepicker

我正在使用jQuery UI版本1.12.1和jQuery Validation v1.15.0

我创建了一个日期选择器,如下所示:

if ($.fn.datepicker) $(':input.date').datepicker({
          changeMonth: true,
          changeYear: true
    });

默认情况下,日期格式为mm / dd / yyyy,例如2017年1月26日,代表2017年1月26日。

我正在尝试将日期格式更改为dd / mm / yyyy,因此我更改了datepicker,如下所示:

if ($.fn.datepicker) $(':input.date').datepicker({
      changeMonth: true,
      changeYear: true,
      dateFormat: 'dd/mm/yy'
});

嗯,现在日期格式显示正确,我们希望它成为2017年1月26日,代表2017年1月26日。

但是,它会抛出一条红色错误消息Please enter a valid date.。在调试之后,我发现错误消息实际上来自第357行的jquery.validate.js:

messages: {
        // some other code
        date: "Please enter a valid date.",
        // some other code
    },

知道如何/为何抛出此错误消息?

我的jQuery UI版本与jQuery验证版本不兼容吗?

请建议。

1 个答案:

答案 0 :(得分:2)

找到它,它实际上是由jquery.validate.min.js中的日期方法验证触发的,它位于第1356行:

// http://jqueryvalidation.org/date-method/
        date: function( value, element ) {
            return this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() );
        },