如何验证结束日期大于开始日期?
Posted
技术标签:
【中文标题】如何验证结束日期大于开始日期?【英文标题】:How do I validate that the end date is greater than start date? 【发布时间】:2011-12-05 06:25:09 【问题描述】:我使用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
。如何更改此代码以使验证生效?
【问题讨论】:
【参考方案1】:您首先必须解析您的文本框值以从中获取日期。最好的方法是正则表达式:
你的验证器函数体应该是(内联 cmets 中的解释):
// date parsing regular expression
var rx = /([0-2]?\d|3[01])-(0?\d|1[0-2])-(\d4)/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;
【讨论】:
【参考方案2】: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;
【讨论】:
以上是关于如何验证结束日期大于开始日期?的主要内容,如果未能解决你的问题,请参考以下文章