मैं निम्नलिखित दृश्य है:विनीत सत्यापन अनदेखी डेटा-वैल जिम्मेदार बताते हैं, लेकिन वर्ग के साथ काम कर = "आवश्यक"
@using (Html.BeginForm())
{
<div class="left-column">
@Html.LabelFor(m => m.Expression)
@Html.TextAreaFor(m => m.Expression, new { @spellcheck = "false" })
@Html.EditorFor(m => m.Sku)
</div>
}
निम्न JavaScript जो एक टाइमर पर हर दूसरे चलाता है के साथ:
$("form").validate();
if ($("form").valid()) {
//...
}
पाठ क्षेत्र तत्व के लिए निम्नलिखित एचटीएमएल (केवल तत्व की आवश्यकता होगी, सत्यापन) उत्पन्न करता है:
<textarea
data-val="true"
data-val-required="The Expression field is required."
cols="20" rows="2"
id="Expression" name="Expression"
spellcheck="false">
</textarea>
समस्या यह है कि सत्यापन कुछ भी नहीं करता है, जब तक कि मैं ब्राउज़र उपकरण का उपयोग करके कक्षा = "आवश्यक" मैन्युअल रूप से जोड़ता हूं। अगर मैं यह सत्यापन कार्य करता हूं और त्रुटि संदेश "अभिव्यक्ति फ़ील्ड आवश्यक है" प्रदर्शित होता है। सटीक "$ (" फ़ॉर्म ") होना चाहिए। वैध()" टेक्स्टरेरा खाली होने पर भी हमेशा सत्य लौटाता है। चूंकि मैं एनोटेशन का उपयोग कर रहा हूं जो स्वचालित रूप से डेटा-वैल विशेषताओं को उत्पन्न करता है, मैं उन पर भरोसा करना चाहता हूं। मैं क्या गलत कर रहा हूं?
FYI करें मेरी स्क्रिप्ट refs इस तरह दिखेगा:
<script src="/Scripts/modernizr-2.0.6-development-only.js" ...
<script src="/Scripts/jquery-1.6.2.js" ...
<script src="/Scripts/Parser.js" ...
<script src="/Scripts/jquery.unobtrusive-ajax.js" ...
<script src="/Scripts/jquery.validate.js" ...
<script src="/Scripts/jquery.validate.unobtrusive.js" ...
Chrome और IE9 में होता है में sitewide सेट कर सकते हैं मेरी doctype है –
क्या आपका फॉर्म आईडी '# paserForm' दिया गया है? इसके अलावा, एएसपी.नेट एमवीसी आपके लिए 'वैध' कॉल करनी चाहिए, आपको इसे स्वयं नहीं बुलाया जाना चाहिए। –
हां यह है, लेकिन असल में, वास्तविक जेएस कोड केवल $ ("फॉर्म") पर चलता है, स्पष्ट रूप से इसे पार्सरफॉर्म कहता है यह देखने के लिए कि यह कुछ भी बदल गया है या नहीं। Validate के लिए चला जाता है() –