2011-07-28 42 views
6

Tôi đã tìm thấy mã bit hữu ích này cho phép ngày làm việc của anh trong Chrome nhưng tôi không chắc chắn cách triển khai nó. Nó ghi đè chức năng ngày mặc định.Ghi đè ngày tháng jquery

date: function(value, element) { 
    //ES - Chrome does not use the locale when new Date objects instantiated: 
    //return this.optional(element) || !/Invalid|NaN/.test(new Date(value)); 
    var d = new Date(); 
    return this.optional(element) || !/Invalid|NaN/.test(new Date(d.toLocaleDateString(value))); 
}, 

Làm cách nào để thêm điều này vào jQuery xác thực để ghi đè chức năng mặc định.

Here is where Tôi tìm thấy mẫu mã

+0

Tôi khuyên bạn nên sử dụng một cái gì đó như: http://www.datejs.com/ – Mrchief

+0

Nếu bạn định sao chép câu trả lời cho một câu hỏi khác, ít nhất hãy trao cho người đó khoản tín dụng. (Bạn thậm chí đã sao chép lỗi chính tả của họ) http://stackoverflow.com/questions/5966244/jquery-datepicker-chrome –

Trả lời

16

Bạn nên gọi phương thức validator.addMethod sau khi tải thư viện jquery.validate như vậy:

$(function() { 
    // Replace the builtin US date validation with UK date validation 
    $.validator.addMethod(
     "date", 
     function (value, element) { 
      var bits = value.match(/([0-9]+)/gi), str; 
      if (!bits) 
       return this.optional(element) || false; 
      str = bits[1] + '/' + bits[0] + '/' + bits[2]; 
      return this.optional(element) || !/Invalid|NaN/.test(new Date(str)); 
     }, 
     "Please enter a date in the format dd/mm/yyyy" 
    ); 
}); 

Lưu ý rằng tôi đã sử dụng một cách khác để thực sự xác nhận đầu vào , vì mã trong câu hỏi của bạn sẽ không hoạt động (toLocaleDateString không tham số). Bạn cũng có thể thay đổi điều này để sử dụng thư viện datejs như Mrchief đã chỉ ra trong phần bình luận.

+1

Đây là giải pháp thanh lịch nhất cho vấn đề này, cảm ơn bạn. – Emanuel

Các vấn đề liên quan