在哪里触发“请输入有效日期”。在 jquery.validate.js

Posted

技术标签:

【中文标题】在哪里触发“请输入有效日期”。在 jquery.validate.js【英文标题】:Where trigger the "Please enter a valid date." in jquery.validate.js 【发布时间】:2017-05-17 02:16:00 【问题描述】:

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

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

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

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

我正在尝试将日期格式更改为 dd/mm/yyyy,因此我将日期选择器更改如下:

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

好吧,现在日期格式显示正确,它变成了 26/01/2017,代表 2017 年 1 月 26 日。

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

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

知道它如何/为什么抛出此错误消息吗?

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

请多多指教。

【问题讨论】:

【参考方案1】:

找到了,其实是jquery.validate.min.js中的一个date方法验证触发的,在1356行:

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

【讨论】:

/Invalid|NaN/.test(new Date( value ).toString()) 应该是isNaN(new Date(value))

以上是关于在哪里触发“请输入有效日期”。在 jquery.validate.js的主要内容,如果未能解决你的问题,请参考以下文章

我在哪里写 MySQL 触发器

在哪里放置 Firestore 触发器

Expression Blend 4 中的触发器面板在哪里?

backand 平台:我可以在哪里放置 DB 触发操作的全局方法

我在哪里可以获得 Laravel 事件的完整列表(由核心库触发)?

在哪里可以找到触发 unset() 上的垃圾收集的“低内存”和“空闲 CPU 周期”调用?