验证结束日期等于大于开始日期
问题描述:
我想检查结束日期是否大于或等于开始日期,使用jquery验证。据验证结束日期大于开始日期,但不允许结束日期等于开始日期,验证结束日期等于大于开始日期
这里是我的代码 -
jQuery.validator.addMethod("greaterThan",
function(value, element, params) {
if (!/Invalid|NaN/.test(new Date(value))) {
return new Date(value) > new Date($(params).val());
}
return isNaN(value) && isNaN($(params).val())
|| (Number(value) > Number($(params).val()));
},'Must be greater than {0}.');
jQuery("#collect_and_delivery").validate({
errorElement:'div',
rules: {
from:{
required:true
},
to:{
required:true
},
start_date:{
required:true
},
end_date:{
required:true,
greaterThan: "#start_date"
}
},
messages: {
from:"Please enter collect address",
to:"Please enter delivery address",
start_date:"Please enter shipping collect date",
end_date:
{
required:"Please enter shipping delivery date",
greaterThan:"Delivery date and Collect date should be proper"
}
}
});
答
您应该使用is greater than or equal to
(>=
)在您的自定义方法greaterThan
。
改变这一行:
return new Date(value) > new Date($(params).val());
要:
return new Date(value) >= new Date($(params).val());
享受...
答
如果你想用简单的JavaScript来比较e下日期。这是一个;简单和容易。
function compareDate() {
var str = document.getElementById("start_date").value;
var end = document.getElementById("end_date").value;
var year = str.substring(0,4);
var month = str.substring(5,7);
var date = str.substring(8,10);
var endYear = end.substring(0,4);
var endMonth = end.substring(5,7);
var endDate = end.substring(8,10);
var startDate = new Date(year, month-1, date);
var endDate = new Date(endYear, endMonth-1, endDate);
if (startDate > endDate) {
alert('start date should be less than end date');
return false;
}
else { return true; }
}
在您的自定义验证器方法“greaterThan”中使用'大于或等于(> =)'。 – 2013-04-10 05:26:49