jquery validate add方法来validation日期时间

我正在使用我在这里找到的datetimepicker插件,它运行得很好。

现在唯一的问题是它打破了jqueryvalidation插件中包含的标准日期validation,因为输入框中字符串末尾的时间增加了。

这是我到目前为止演示的内容 。 我添加了一个validation方法,检查该值是否为日期,但它不接受时间。

我需要帮助编写自定义validation方法。 如何拆分datetime字符串,然后执行测试以validation它们?

谢谢

您已经对date规则进行了validation。 否则,您可以查看jQuery Validate插件以获取:

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

这是我发现的用于validation字符串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/

只需将两个函数组合到“DateTime”方法中即可。 然后在空间中分割输入值并相应地测试每个部件。


这是一个演示,我将日期和时间方法结合在一起。 它接受以下格式, yyyy/mm/dd hh:mm ,因此您只需稍微调整一下即可。

http://jsfiddle.net/9CdvN/2/

你提到的日期时间选择器说它使用jQuery UI的datepicker小部件。 您可以使用ui datepicker API(特别是dateFormat方法)控制从窗口小部件接收的日期的格式。

您应该能够设置datepicker以提供validation所需格式的日期。

希望有所帮助!

我建议你切换插件吗? http://www.datejs.com/有很多方法来validation日期和一些荒谬的语法糖:

 // 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');