2011-10-11 82 views
1

我用another answer來解決我的問題。如何驗證結束日期是否大於開始日期?

jQuery.validator.addMethod("greaterThan", function(value, element, params) { 
    return new Date(value) > new Date($(params).val()); 
}, 'Must be greater than {0}.'); 

然而,我的日期字段是一個文本框和格式化,像dd-mm-yyyy。如何更改此代碼以使驗證有效?

回答

0

您首先必須解析您的文本框的值才能從中獲取日期。最好的辦法是正則表達式:

你的驗證函數體應該是(在內部註釋說明):

// date parsing regular expression 
var rx = /([0-2]?\d|3[01])-(0?\d|1[0-2])-(\d{4})/i; 

// get textbox value 
var val = $(params).val(); 

// default date 
var date = new Date(); 

// parse date if entered correctly 
if (rx.test(val)) 
{ 
    // get date parts 
    var result = rx.exec(val); 

    // generate date instance 
    date = new Date(result[3], result[2]-1, result[1]); 
} 

// validate dates 
return new Date(value) > date; 
0
function ValidateEndDate() { 
     var startDate = $("txtfromdate").val(); 
     var endDate = $("txttodate").val(); 
     if (startDate != '' && endDate !='') { 
      if (Date.parse(startDate) > Date.parse(endDate)) { 
       $("txttodate").val(''); 
       alert("Start date should not be greater than end date"); 
      } 
     } 
     return false; 
    } 
相關問題