checkFields = function() {
var colCheck = 0;
var colArray = [];
var colDupArray = [];
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. Please amend!");
return false;
}
验证:
isValidDate = function(day,month,year) {
var dteDate;
dteDate=new Date(year,month,day);
var day = dteDate.getDate();
var month = dteDate.getMonth() + 1;
var year = dteDate.getFullYear();
var formatted =
(day < 10 ? "0" : "") + day + "/" +
(month < 10 ? "0" : "") + month + "/" +
year;
return
+day === dteDate.getDate() &&
+month === dteDate.getMonth() &&
+year === dteDate.getFullYear();
}
的问题是,我的代码被接受的日期,如“03.06.2012”的时候,我只希望它接受数字之间的斜线。
当我只想要四位数年份时,它也接受“03/06/12”。
任何想法?
为什么不使用您的格式化程序来呈现有效的日期到您的文本? 您正试图根据您的格式验证文本字段。 http://stackoverflow.com/questions/3605214/javascript-add-leading-zeroes-to-date/16314504#16314504 – 2013-05-01 14:47:18
请参阅http://stackoverflow.com/questions/51224/regular-expression-to-match灵感也有效日期 – Aprillion 2013-05-01 15:04:41
你的'isValid'功能已经完全搞砸了。这只是一个C&P错误或您正在使用的实际代码?它永远不会返回“真”。 – Bergi 2013-05-01 15:07:24