我正在使用我在这里找到的一个 datetimepicker 插件,它工作得很好。
现在唯一的问题是它破坏了jquery 验证插件中包含的标准日期验证,因为在输入框中的字符串末尾添加了时间。
这是我到目前为止在演示中的内容。我添加了一个验证方法来检查值是否为日期,但它不接受时间。
我需要帮助编写自定义验证方法。如何拆分date
andtime
字符串然后执行测试来验证它们?
谢谢
我正在使用我在这里找到的一个 datetimepicker 插件,它工作得很好。
现在唯一的问题是它破坏了jquery 验证插件中包含的标准日期验证,因为在输入框中的字符串末尾添加了时间。
这是我到目前为止在演示中的内容。我添加了一个验证方法来检查值是否为日期,但它不接受时间。
我需要帮助编写自定义验证方法。如何拆分date
andtime
字符串然后执行测试来验证它们?
谢谢
您已经对date
规则进行了验证。否则,您可以查看 jQuery Validate 插件以获取:
date: function( value, element ) {
return this.optional(element) || !/Invalid|NaN/.test(new Date(value).toString());
},
这是我发现的用于验证time
字符串部分的自定义方法。
$.validator.addMethod("time", function (value, element) {
return this.optional(element) || /^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))?$/i.test(value);
}, "Please enter a valid time.");
时间演示:http: //jsfiddle.net/9CdvN/
只需将这两个函数组合到您的“日期时间”方法中。然后在空间拆分您的输入值并相应地测试每个部分。
这是一个演示,我将日期和时间方法组合在一起。它接受以下格式,yyyy/mm/dd hh:mm
因此您只需稍微调整一下即可。
您提到的日期时间选择器说它使用 jQuery UI 的 datepicker 小部件。您可以使用 ui datepicker API,特别是dateFormat 方法来控制从小部件接收的日期格式。
您应该能够设置 datepicker 以提供验证所需格式的日期。
希望有帮助!
我可以建议你切换插件吗?http://www.datejs.com/有大量验证日期的方法和一些荒谬的语法糖:
// Convert text into Date
Date.parse('today');
Date.parse('t + 5 d'); // today + 5 days
Date.parse('next thursday');
Date.parse('February 20th 1973');
Date.parse('Thu, 1 July 2004 22:30:00');