jquery validate add方法来验证datetime

时间:2013-04-03 12:34:09

标签: jquery jquery-ui jquery-validate datepicker

我使用的是datetimepicker插件,我发现here效果非常好。

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

以下是我目前在demo中的内容。我添加了一个验证方法,检查该值是否为日期,但它不接受时间。

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

由于

3 个答案:

答案 0 :(得分:18)

您已经对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/

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


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

<强> http://jsfiddle.net/9CdvN/2/

答案 1 :(得分:1)

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

您应该能够设置日期选择器,以提供验证所需格式的日期。

希望有所帮助!

答案 2 :(得分:1)

我建议您切换插件吗? 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');