2013-03-12 88 views
1

日期字段未針對2013-02-13等格式進行驗證,但適用於2013-12-12。前導零似乎在任何節點形式中都會產生問題。我有「客戶端驗證」模塊。我無法在任何地方找到與此錯誤/問題相關的任何內容,因此我在此處發帖。日期字段驗證問題

任何人都可以幫助我嗎?

回答

0

由於使用parseInt驗證日期的月份日期值&,所以在客戶端驗證js中存在問題。只需更換它

jQuery.validator.addMethod("dateFormat", function(value, element, param) { 
     var parts = value.split(param.splitter); 
     var expectedpartscount = 0; 
     var day = parseInt(parts[param.daypos], 10); 
     var month = parseInt(parts[param.monthpos], 10); 
     month = month - 1; 
     var year = parseInt(parts[param.yearpos], 10); 
     var date = new Date(); 
     var result = true; 

/* if (day.toString().length !== parts[param.daypos].length){ 
     result = false; 
     } 
     if (month.toString().length !== parts[param.monthpos].length){ 
     result = false; 
     }*/ 
     if (year.toString().length !== parts[param.yearpos].length){ 
     result = false; 
     } 
     if (param.yearpos !== false){ 
     expectedpartscount++; 
     date.setFullYear(year); 
     if (year !== date.getFullYear()) { 
      result = false; 
     } 
     } 
     if (param.monthpos !== false) { 
     expectedpartscount++; 
     date.setMonth(month); 
     if (month !== date.getMonth()) { 
      result = false; 
     } 
     } 
     if (param.daypos !== false) { 
     expectedpartscount++; 
     date.setDate(day); 
     if (day !== date.getDate()) { 
      result = false; 
     } 
     } 
     if (expectedpartscount !== parts.length) { 
     result = false; 
     } 
     return this.optional(element) || result; 
    }, jQuery.format('The date is not in a valid format')); 
+1

感謝Dilipkumar它的工作。並感謝kiamlaluno版本。 – 2013-03-13 05:06:12