दिलचस्प पोस्ट
कैसे सी # में एमएस कार्यालय दस्तावेजों से पाठ निकालने के लिए जावास्क्रिप्ट में पृष्ठ पर मैं ऑब्जेक्ट की पूर्ण स्थिति कैसे प्राप्त करूं? संरेखित करें-स्व, संरेखित-आइटम और संरेखित-सामग्री के साथ फ्लेक्स-रैप काम कैसे करता है? जब मेरी खोल स्क्रिप्ट निकल जाए तो मैं पृष्ठभूमि प्रक्रियाओं / नौकरियों को कैसे मारूं? कैसे रोकें / एंड्रॉइड रद्द करें एंड्रॉइड CountDownTimer पायथन: mysqldb को एक शब्दकोश के रूप में एक MySQL तालिका आयात करने के लिए उपयोग करें? JSP में एक तिथि को रूपांतरित और प्रारूपित करें बैश में एक फ़ाइल से अंतिम पंक्ति निकालें "ज़बरा का स्वामी कौन है" प्रोग्रामिंग को हल करना? क्यों ValueType.GetHashCode () लागू की तरह है? rpy2 विंडोज 7 पर स्थापित करें सी # में दो विंडोज़ फार्मों के बीच संवाद नोड्स के 'एन' नंबर के साथ, कितने अलग-अलग बाइनरी और बाइनरी खोज पेड़ संभव हैं? प्रक्रिया पेड़ प्रोग्राम को सी # में मार दें त्रुटि "पुस्तकालय के लिए नहीं मिला"

तत्वों के समूह पर MVC बल jQuery सत्यापन

मेरा प्रपत्र मैं एमवीसी 4 के साथ डिजाइन कर रहा हूं, जिसमें प्रत्येक एक में कई तत्व हैं। मेरा उद्देश्य फ़ील्ड को पूरा करने के रूप में DIVS को खोलने / बंद करना है। हालांकि, मैं पूरे प्रपत्र के बजाय प्रत्येक डीआईवी पर विरोधाभासी मान्यता का उपयोग करना चाहता हूं। क्या प्रत्येक तत्व को व्यक्तिगत रूप से जाँच किए बिना संभव है? शायद एक डीआईवी आईडी या कुछ का उपयोग कर रहे हो? मैं प्रत्येक डीआईवी में प्रत्येक तत्व को जांचने के लिए इस विशाल कार्य का निर्माण नहीं करना चाहता, ताकि उपयोगकर्ता अगले डिविए में जा सके।

मैं यह कोशिश कर रहा हूं और यह काम नहीं कर रहा है।

var elems = []; var valid = true; ("#Contact").find('.text_input').each(function() { elems.push(this.id); } for (var i = 0; i<= elems.length; i++) { if ($("#" + elems[i]) != undefined) { $("#form1").validate().element("#" + elems[i])) if ($("#" + elems[i]).valid()) { } else { valid = false; } } } 

लेकिन मैं एक अपरिभाषित त्रुटि प्राप्त कर रहा हूं। डीआईवी के तत्व जो कि क्लास टेक्स्ट_इनपुट हैं, वे आवश्यक सत्यापन के साथ हैं।

वेब के समाधान से एकत्रित समाधान "तत्वों के समूह पर MVC बल jQuery सत्यापन"

आप Validator.element(element) का उपयोग कर व्यक्तिगत नियंत्रण को मान्य कर सकते हैं। Validator.element(element) – यहां दस्तावेज़ीकरण देखें , ताकि आप निम्न दृष्टिकोण का उपयोग कर सकें (आप ने html को पोस्ट नहीं किया है ताकि आप के लिए वास्तविक कोड नहीं लिखे)

अगला बटन क्लिक ईवेंट में

  1. संबंधित div सभी नियंत्रणों का चयन करें – जैसे कि var controls = $(this).closest('div').find('input, textarea, select');
  2. $.each पाश में कॉल $("form").validate().element($(this));
  3. यदि आवश्यक हो, तो परीक्षण $(this).valid(); साथ वैध है $(this).valid();
  4. यदि सब कुछ मान्य है, तो वर्तमान डिवीजन को छुपाने और अगले प्रदर्शित करें

संपादित करें (उदाहरण जोड़ा गया)

राय

 <div class="section"> <h2>Section 1</h2> .... // Your inputs and validation @Html.LabelFor(m => m.SomeProperty) @Html.TextBoxFor(m => m.SomeProperty) @Html.ValidationMessageFor(m => m.SomeProperty) <div class="error"></div> <button type="button" class="next">Next</button> </div> <div class="section"> <h2>Section 2</h2> .... // Your inputs and validation <div class="error"></div> <button type="button" class="next">Next</button> </div> <div class="section"> <h2>Section 3</h2> .... // Your inputs and validation <div class="error"></div> <button type="submit" class="next">Submit</button> // submit button for last section </div> 

सीएसएस

 .section:not(:first-of-type) { display:none; } 

लिपि

 $('button').click(function () { var container = $(this).closest('.section'); var isValid = true; $.each(container.find('input'), function () { $('form').validate().element($(this)); if (!$(this).valid()) { isValid = false; return false; } }); if (isValid) { container.next('.section').show().find('input').first().focus(); container.hide(); } else { container.find('.error').text('please complete'); } });