2009-10-05 113 views
1

我正在使用jquery-1.3.2.js与jquery.validate.js插件,我使用下面的代码来尝试和验证可选的时间字段。jQuery验证,正则表达式和null

$.validator.addMethod('time', function(value) { 
    return /(^([0-9]|[0-1][0-9]|[2][0-3]):([0-5][0-9])(\s{0,1})(AM|PM|am|pm|aM|Am|pM|Pm{2,2})$)|(^([0-9]|[1][0-9]|[2][0-3])(\s{0,1})(AM|PM|am|pm|aM|Am|pM|Pm{2,2})$)/.test(value); 
}, 'Please enter a valid time in the format of mm:hh am'); 

    $.validator.addClassRules({ 
    time: { 
     required: true, 
     time: true 
    }, 
    timeOptional: { 
     required: false, 
     time: true 
    } 

}); 

当我添加一个类来我的文本框是“timeOptional”,我不输入在文本框中,当表单提交,我得到的消息“请在输入有效的时间什么mm格式:我是。“

我该如何改变它,以便表单允许在此文本框中提交空值?

回答

0

您可以将{0,1}添加到整个分组的正则表达式的末尾,以表示0或1个条目。

+0

对于正则表达式,恐怕我有些迟钝。我无法得到这个工作。它会接受一个空的文本框,但它最终也接受了其他任何内容。我结束了使用原始正则表达式的另一个函数,但添加如果(值==“”)返回true;否则返回正则表达式 – Deke 2009-10-05 23:17:15