由于某种原因,我的日期验证允许句号通过,但仅在日期的那部分结束时通过,例如12./10/201获得通过,但1.2 / 10/201没有通过。
这是我的代码:
var iDate = $("check_date").value;
if(iDate.length > 0) {
var a = iDate.split("/");
if(isValidDate(a[0],a[1]-1,a[2]) == false){
alert("You have entered an invalid date.");
return false;
}
isValidDate = function(day,month,year) {
var dteDate;
dteDate=new Date(year,month,day);
return ((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getFullYear()));
}
有任何想法吗?
最佳答案
如评论中所述,以下是解决方案:
isValidDate = function(day,month,year) {
var dteDate;
dteDate=new Date(year,month,day);
return ((day.toString()===dteDate.getDate().toString()) && (month.toString()===dteDate.getMonth().toString()) && (year.toString()===dteDate.getFullYear().toString()));
}
您还需要toString()方法,就像您比较和
"12"
一样,它不会相等。现在,您将12
与"12"
进行比较,这对于有效日期是相等的。