6

मैं लगभग वहां हूं। मैंने स्थानीयकृत jQuery डेटपिकर बनाया है, कस्टम प्रारूप सत्यापन जोड़ा है, लेकिन यूएस डिफ़ॉल्ट प्रारूप सत्यापन से (डिफ़ॉल्ट?) से छुटकारा नहीं मिल सकता है।jQuery डेटपिकर के साथ कस्टम डेट प्रारूप सत्यापन (यूएस दिनांक सत्यापन से छुटकारा नहीं मिल सकता)

मैं इस तरह मेरी दिनांक फ़ील्ड प्रतिपादन कर रहा हूँ:

... 
@Html.EditorFor(m => m.JobDate) 
@Html.ValidationMessageFor(m => m.JobDate) 
... 

और एचटीएमएल इस तरह दिखता है:

<input class="date hasDatepicker" data-val="true" data-val-required="The JobDate field is required." id="JobDate" name="JobDate" value="28.6.2011" type="text"> 
<span class="field-validation-valid" data-valmsg-for="JobDate" data-valmsg-replace="true"></span> 

अंत में, मैं ऊपर हुक (मेरी जावास्क्रिप्ट फ़ाइल में) एक jQuery datepicker नियंत्रण मेरे दिनांक फ़ील्ड को संभालने के लिए:

$(document).ready(function() { 
    jQuery.validator.addMethod(
     "hrDateValidator", 
     function(value, element) { 
       try { jQuery.datepicker.parseDate('d.m.yy', value); return true; } 
       catch(e){return false;} 
      }, 
      "Datum nije u formatu d.m.gggg" 
     ); 

    $('.date').datepicker({ dateFormat: "d.m.yy" }); 
    $.datepicker.setDefaults($.datepicker.regional["hr"]); 
    $('.date').rules("remove"); 
    $('.date').rules("add", { hrDateValidator: true });  

}); 

हालांकि, अब मेरे पास दिनांक सत्यापन पर दो सत्यापन नियम सक्रिय हैं बड़े, अमेरिकी तिथि और इस कस्टम तिथि।

मैं इस यूएस दिनांक नियम से छुटकारा नहीं पा सकता हूं, यह $('.date').rules("remove"); लाइन क्यों अमेरिकी दिनांक नियम को हटाती है?

धन्यवाद,

इगोर

उत्तर

13

आप की कोशिश कर सकते बजाय एक नया जोड़ने की "ऊपर लिख" करने के लिए तिथि सत्यापन विधि:

jQuery.validator.methods["date"] = function (value, element) { ... } 
+0

बढ़िया है, यह काम करता है। – igorludi

+0

हालांकि, मुझे अभी भी आश्चर्य है कि क्यों .remove काम नहीं किया? – igorludi

+0

मैंने अभी यह पता लगाने के लिए एक घंटे से अधिक समय व्यतीत किया है कि यह सही तरीके से पार्स क्यों नहीं किया गया है, हालांकि मैंने कस्टम दिनांक प्रारूप सेट किया है। धन्यवाद। –

3
  date: function (value, element) { 

      try { jQuery.datepicker.parseDate('d.m.yy', value); return true; } 
      catch (e) { return false; } 

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