2009-10-05 106 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