2011-07-28 11 views
6

मुझे यह उपयोगी कोड मिला है जो ब्रिटेन की तारीखों को क्रोम में काम करने की अनुमति देता है लेकिन मुझे यकीन नहीं है कि इसे कैसे कार्यान्वित किया जाए। यह डिफ़ॉल्ट दिनांक कार्यक्षमता को ओवरराइड करता है।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))); 
}, 

मैं इसे डिफ़ॉल्ट कार्यक्षमता को ओवरराइड करने के लिए jQuery सत्यापन में कैसे जोड़ सकता हूं।

Here is where मैं कोड नमूना पाया

+0

मैं कुछ इस तरह का उपयोग करने का सुझाव दूंगा: http://www.datejs.com/ – Mrchief

+0

यदि आप किसी अन्य प्रश्न का उत्तर कॉपी करने जा रहे हैं, तो कम से कम उस व्यक्ति को क्रेडिट दें। (आपने अपने टाइपो को भी कॉपी किया है) http://stackoverflow.com/questions/5966244/jquery-datepicker-chrome –

उत्तर

16

तुम इतनी तरह jquery.validate पुस्तकालय लोड करने के बाद validator.addMethod विधि कॉल करना चाहिए:

$(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" 
    ); 
}); 

ध्यान दें कि मैं वास्तव में इनपुट मान्य का एक और तरीका इस्तेमाल किया , क्योंकि आपके प्रश्न में कोड काम नहीं करेगा (toLocaleDateString पैरामीटर नहीं लेता है)। आप डेटज लाइब्रेरी का उपयोग करने के लिए इसे बदल सकते हैं क्योंकि श्रीचिफ ने टिप्पणियों में बताया।

+1

यह समस्या का सबसे सुंदर समाधान है, धन्यवाद। – Emanuel

संबंधित मुद्दे