मैंने jQuery सत्यापन प्लगइन का उपयोग करके एक फॉर्म रखा है, और सभी इनपुट वर्किंग सत्यापन और त्रुटि संदेशों के साथ ठीक हैं - चेकबॉक्स को छोड़कर। मेरे पास दो चेकबॉक्स समस्याएं हैं IjQuery सत्यापन प्लगइन: चेकबॉक्स समूह और त्रुटि संदेश समस्याएं
पहला यह है कि प्रमाणीकरण प्लगइन एपीआई समूहीकृत संदर्भों में चेकबॉक्स को संभाल नहीं पाता है (मैं समूहबद्ध करने के लिए फ़ील्ड का उपयोग कर रहा हूं)। कस्टम विधि और कक्षा का उपयोग करके अधिक सामान्य मामले के लिए रेबेका मर्फी द्वारा a post के संदर्भ में इस मुद्दे पर कई दृष्टिकोण पाए गए। इस स्थिति के लिए अनुकूल है कि:
jQuery.validator.addMethod('required_group', function(val, el) {
var fieldParent = $(el).closest('fieldset');
return fieldParent.find('.required_group:checked').length;
});
jQuery.validator.addClassRules('required_group', {
'required_group': true
});
jQuery.validator.messages.required_group = 'Please check at least one box.';
काम करता है इस तरह की, लेकिन हर चेकबॉक्स पर त्रुटि संदेश पैदा करता है, और के रूप में प्रत्येक बॉक्स क्लिक किया जाता है केवल उन्हें निकालता है। यह उपयोगकर्ता के लिए स्वीकार्य स्थिति नहीं है, जो झूठी सकारात्मक पर क्लिक करके केवल उनसे छुटकारा पा सकता है। आदर्श रूप से, मुझे लगता है कि उनके संदेशों को प्रदर्शित करने से पहले अतिरिक्त संदेशों को रोकने या समाप्त करने के लिए कुछ आवश्यक है और पैरेंट फ़ील्ड में एक त्रुटि संदेश प्रदर्शित करने के लिए त्रुटि प्लेसमेंट का उपयोग करें, जिसे तब किसी भी चेकबॉक्स पर क्लिक के साथ हटा दिया जाएगा। कम आदर्श, शायद वे सभी प्रदर्शित होंगे लेकिन एक ईवेंट हैंडलर एक क्लिक के साथ अनावश्यक संदेशों का पूरा सेट बंद कर सकता है, जो this approach tvanfosson द्वारा प्रदान किया जाता है। (एक और अनुकूलित दृष्टिकोण here, लेकिन मैं इसे काम नहीं कर सका।) मुझे लगता है कि मुझे यह भी ध्यान रखना चाहिए कि इस फ़ॉर्म को चेकबॉक्स के अलग-अलग नाम होने की आवश्यकता है।
मेरी दूसरी समस्या के रूप में चेक बॉक्स के साथ fieldsets में से एक भी बाहरी चेक बॉक्स में से एक के तहत चेक बॉक्स के एक नेस्ट fieldset शामिल है। तो प्रथम स्तर की एक-बॉक्स-चेक की आवश्यकता के अतिरिक्त, यदि दूसरे स्तर के चेकबॉक्स वाले विशेष चेकबॉक्स की जांच की जाती है, तो कम से कम दूसरे स्तर के बॉक्स में से एक को चेक किया जाना चाहिए। सही दृष्टिकोण के बारे में निश्चित नहीं है; मैं अनुमान लगा रहा हूं कि क्या होने की आवश्यकता है (उपर्युक्त योजना के बाद) यह है कि ट्रिगर चेकबॉक्स उप-फ़ील्ड में सभी चेकबॉक्स में 'आवश्यक_ग्रुप' वर्ग को जोड़ने/निकालने के लिए टॉगल क्लास का उपयोग करेगा, जो तब (उम्मीद है) माता-पिता के समान व्यवहार करेगा फ़ील्ड:
$("#triggerCheckbox").click(function() {
$(this).find(":checkbox").toggleClass("required_group");
});
कोई सुझाव या विचार आपका स्वागत है। मैं इस पर अपने सीमित jQuery कौशल से परे हूं और यह सुनकर खुशी होगी कि मुझे ऐसा करने के लिए सरल, सुरुचिपूर्ण और/या स्पष्ट तरीके याद आए!
क्या आपको कोई समाधान मिला? मुझे आपके चेकबॉक्स के बजाय फ़ाइल अपलोड इनपुट के साथ एक ही समस्या का सामना करना पड़ रहा है। चीयर्स। – Nicolas
अपने प्रश्न पर ठोकर खाई। क्या यह आपकी मदद करेगा? http://stackoverflow.com/questions/1300994/jquery-validate-require-at-least-one-field-in-a-group-to-be-filled –