2011-10-11 175 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; 
    } 
相关问题