2013-01-11 59 views
-2

爲什麼jQuery驗證器接受這是一個有效日期?jQuery驗證器接受無效日期

01/123/1

如果你輸入該日通過了驗證。我如何確保用戶輸入有效日期?我不想使用日期選擇器。

鏈接到驗證:http://docs.jquery.com/Plugins/Validation/Methods/date

+5

該頁面上的演示顯示它不是有效日期 – RGdev

+0

我使用的是Firefox,它的出現有效。我剛剛檢查了Chrome,它說無效......你在測試什麼瀏覽器? –

+0

任何人有想法? –

回答

0

由於內置了最新的功能不工作在Firefox,這裏是一個擴展方法,在所有瀏覽器上運行。這也檢查以確保日期有效,99/99/9999不起作用。

$.validator.addMethod(
     "mmddyyyy", 
     function(value, element) { 
      var match = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/.exec(value), 
      isDate = function (m, d, y) { 
       return m > 0 && m < 13 && y > 0 && y < 32768 && d > 0 && d <= (new Date(y, m, 0)).getDate(); 
      }; 
      return match && isDate(match[1], match[2], match[3]); 
     }, 
     "Please enter a date in the format mm/dd/yyyy." 
    ); 



    $('#Form1').validate({ 
     rules: { 
      birthDate: { required: true, mmddyyyy: true } 
     } 
    }); 

});