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