2013-04-21 5 views
8

मैं अपने jQuery डेटपिकर का उपयोग करते समय इस त्रुटि का सामना कर रहा हूं।फ़ील्ड 'डेट' एक तिथि होनी चाहिए एमवीसी 4

jQuery:

$(".datepicker").datepicker({ 
    defaultDate: +7, 
    autoSize: true, 
    dateFormat: 'dd.mm.yy', 
}); 

मॉडल:

[DisplayName("Date")] 
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)] 
[Required(ErrorMessage = "Date is required")] 
public DateTime Date { get; set; } 

तो मैं दिनांक स्वरूप dd.MM.yyyy की तरह बनना चाहता हूँ, और जब मैं datepicker का उपयोग कर तिथि का चयन करें इसे सही ढंग से क्षेत्र में जोड़ा जाता है। लेकिन एक ही सेकंड में, एक सत्यापन त्रुटि The field 'Date' must be a date कह रही है।

मैंने dd/MM/yy प्रारूप में मैन्युअल रूप से दिनांक लिखने के साथ परीक्षण किया और फिर ऐसा लगता है कि यह काम कर रहा है। तो कहीं भी वैधकर्ता उस प्रारूप को देखता है, लेकिन मैं यह नहीं समझ सकता कि इसे कहां संशोधित करना है।

+0

क्या आपको यह काम मिल गया? यदि नहीं, तो आप मेरा जवाब आज़मा सकते हैं। – technicallyjosh

+0

क्या आपको +7 (जैसे '+7') के आसपास उद्धरण की आवश्यकता नहीं है? – Tessmore

उत्तर

0

डिस्प्लेफॉर्मैट उस प्रारूप में नहीं होगा जिसमें सत्यापन में स्वीकार किया गया है। यदि आप वहां की अवधि के साथ कुछ चाहते हैं तो मैं इसे सत्यापित करने के लिए एक नियमित अभिव्यक्ति का उपयोग करने का सुझाव दूंगा।

[DisplayName("Date")] 
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)] 
[Required(ErrorMessage = "Date is required")] 
[RegularExpression(@"PUT REGEX HERE", ErrorMessage = "Invalid Date")] // below is a link 
public DateTime Date { get; set; } 

Some common expressions here.

इसके अलावा, मैं प्रारूप में लगातार किया जा रहा है जब से ग # js के लिए जा रहा सुझाव है।

आप जे एस में है:

dateFormat: 'dd.mm.yy' 

आप चाहते हो सकता है:

dateFormat: 'dd.mm.yyyy' 

आप, साथ ही मॉडल पर DisplayFormat विशेषता को बदल सकता है बस dd.MM. होने के लिए हाँ भी सिर्फ एक विचार!

2

क्या आप क्रोम का उपयोग कर रहे हैं? एक jquery.validate.js मुद्दा हो सकता है, कृपया इस Jquery Datepicker Chrome

0

संशोधित करना https://stackoverflow.com/a/17968454/4955259 पर प्रदान की जाती जवाब दिनांक स्वरूप dd.mm.yy के लिए मेरे लिए काम कर रहा है के लिए एक नजर है (jquery.validate के बाद स्क्रिप्ट जोड़ने। जे एस)।

jQuery.validator.methods.date = function (value, element) { 
    var d = value.split("."); 
    return this.optional(element) || !/Invalid|NaN/.test(new Date((/chrom(e|ium)/.test(navigator.userAgent.toLowerCase())) ? d[1] + "." + d[0] + "." + d[2] : value)); 
}; 
संबंधित मुद्दे