如何验证结束日期是否大于开始日期?
问题描述:
我用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
。如何更改此代码以使验证有效?
答
您首先必须解析您的文本框的值才能从中获取日期。最好的办法是正则表达式:
你的验证函数体应该是(在内部注释说明):
// 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;
答
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;
}