javascript - Jquery Validation with Identical Form Names -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 12 उत्तरों
मेरे पास एक ऐसा फ़ॉर्म है जो करता है 2 चीजें:
- PHP पर पहला नाम और ईमेल पता पास करें।
- एक क्लिक पर गतिशील रूप से नाम / ईमेल फ़ील्ड का एक नया समूह जोड़ें, यदि उपयोगकर्ता चाहता है एक से दो या अधिक डेटा सेट करें।
चूंकि मुझे पता नहीं है कि प्रत्येक उपयोगकर्ता कैसे सबमिट करना चुन सकता है, मैं डेटा को PHP में एक सरणी में पास करता हूं (एक नाम [] द्वारा पीछा किया, इसलिए मैं एक foreach पाश का उपयोग कर सकते हैं और हमेशा प्रत्येक डेटा सेट प्राप्त करते हैं। बेहतर समझने के लिए यहां कुछ कोड है:
& lt; form method = "post" action = "submit.php" id = "formID" & gt; & Lt; तालिका की चौड़ाई = "100%" सीमा = "0" सेलेक्शन = "0" सेलपैडिंग = "0" आईडी = "संपर्क" & gt; & LT; टीआर & gt; & Lt; td & gt; & lt; लेबल वर्ग = "नामेलैबेल" & gt; & lt; span & gt; मित्र का पहला नाम: & lt; / span & gt; & lt; इनपुट प्रकार = "लेख" नाम = "मित्रनाम []" class = "friendName" id = " Name1 "/ & gt; & lt; / label & gt; & lt; / td & gt; & Lt; td & gt; लेबल लेबल = "emaillabel" & gt; & lt; span & gt; मित्र का ईमेल: & lt; / span & gt; & lt; इनपुट प्रकार = "लेख" नाम = "मित्र ईमेल []" class = "friendEmail" id = "email1 "/ & Gt; & lt; / लेबल & gt; & lt; / td & gt; & Lt; / टीआर & gt; & Lt; / तालिका & gt; & Lt; p class = "addmore" & gt; & lt; a href = "#" आईडी = "ऐडक्लिक" & gt; इसे और मित्र भेजने के लिए यहां क्लिक करें & lt; / a & gt; & lt; / p & gt; & Lt; इनपुट प्रकार = "सबमिट करें" मान = "समाचार प्रसारित करें!" नाम = "सबमिट" / & gt; & Lt; / प्रपत्र & gt; & Lt; स्क्रिप्ट भाषा = "जावास्क्रिप्ट" प्रकार = "टेक्स्ट / जावास्क्रिप्ट" src = "शामिल / jquery-1.3.2.min.js" & gt; & lt; / स्क्रिप्ट & gt; & Lt; स्क्रिप्ट भाषा = "जावास्क्रिप्ट" प्रकार = "टेक्स्ट / जावास्क्रिप्ट" src = "शामिल करें / jquery.validate.pack.js" & gt; & lt; / स्क्रिप्ट & gt; & Lt; स्क्रिप्ट प्रकार = "टेक्स्ट / जावास्क्रिप्ट" & gt; $ (दस्तावेज़) .ready (function () {fieldCount = 1; $ ("# addclick")। क्लिक करें (फ़ंक्शन (e) {e.preventDefault (); fieldCount + = 1; $ ('# संपर्क tr: last') ('& Lt; tr & gt; & lt; td & gt; & lt; लेबल वर्ग = "नामेलैबेल" & gt; & lt; span & gt; मित्र का पहला नाम: & lt; / span & gt; & lt; इनपुट प्रकार = "लेख" नाम = "मित्रनाम [] "Class =" friendName "id =" name '+ fieldCount +' "/> gt; & gt; लेबल & gt; & lt; / td & gt; & lt; td & gt; & lt; लेबल class =" emaillabel "& gt; & lt; span & gt; मित्र \ 'S ईमेल: & lt; / span & gt; & lt; इनपुट प्रकार = "टेक्स्ट" नाम = "मित्राईमेल []" class = "friendEmail" id = "ईमेल' + क्षेत्रकाउंट + '" /> gt; & lt; / label & gt; & lt; ("नियम": {"मित्रनाम []": "आवश्यक", "मित्रईमेल []": "आवश्यक ईमेल",} {/} & gt; & lt; / tr & gt; ');}); $ ("# formID" });}); & Lt; / स्क्रिप्ट & gt;
समस्या यह है कि, केवल पहला मित्र नाम [] और मित्र ईमेल [] प्रस्तुत करने पर मान्य हो जाते हैं। मान्यता प्राप्त करने के लिए आपको समान नाम वाले किसी अन्य फ़ील्ड पर क्लिक करना होगा (आलसी सत्यापन की तरह ही फोकस करने के बाद ही किक करता है)
मैं एक प्रपत्र फ़ील्ड के लिए एक ही नाम का उपयोग कैसे कर सकता हूं और उन्हें एक ही समय में मान्य किया गया है?
नीचे दिए गए चरणों का पालन करें
1) ओपन jquery.validate.js फ़ाइल
2) चेकफॉर्म खोजें: फ़ंक्शन () {3) इस फ़ंक्शन को नीचे कोड के साथ बदलें।
चेकफॉर्म: फ़ंक्शन () {this.prepareForm (); के लिए (var i = 0, तत्व = (this.currentElements = this.elements ()); तत्व [i]; i ++) {यदि (this.findByName (तत्व [i] .name) .length! = Undefined & amp; ;) इस। पहचान (तत्व [i] .name)। लम्बाई & gt; 1) {for (var cnt = 0; cnt & lt; this.findByName (तत्व [i] .name) .length; cnt ++) {this.check ( This.findByName (तत्व [i] .name) [cnt]); }} और {this.check (तत्व [i]); }} इस return.valid (); }
Comments
Post a Comment