2009-11-30 20 views
7

मैं वर्तमान में किसी फॉर्म को सत्यापित करने के लिए मान्य प्लगइन का उपयोग कर रहा हूं (ASP.Net नियंत्रणों का उपयोग करके)। मैं form.validate विधि यानी भीतर मानक सेटअप से नियमों को छीन लिया हैJQuery गतिशील रूप से नियम जोड़ें

$("form").validate({ 

    rules: { 
     ctl00$ContentPlaceHolder1$dgQuestions$ctl14$iRadList_Col0: "required" 
    } 

}); 

मैं अब जो बटन क्लिक किया पर निर्भर करता है ruless जोड़ने विभिन्न कार्यों में इन किया है। यह टेक्स्ट बॉक्स के लिए ठीक काम करता है, लेकिन एक रेडियोबूटटन सूची के लिए जब प्लगइन नियम जोड़ने का प्रयास करता है तो यह कहने में त्रुटि होती है कि तत्व अपरिभाषित है।

function addRuleSet() { 
    $("#ctl00$ContentPlaceHolder1$dgQuestions$ctl14$iRadList_Col0").rules("add", { required: true }); 

}

मुझे लगता है कि समस्या यह है कि मैं नाम विशेषता का उपयोग कर रहा (एएसपी $ में डालता है) समूह रेडियो बटन के बजाय के हैं एक आईडी (से परिभाषित करने के लिए, लेकिन स्थिर में है सेटिंग सभी तत्वों को नाम विशेषता का उपयोग करके निश्चित किया जाता है। वैसे भी मुझे यकीन नहीं है कि संबंधित रेडियो बटनों के समूह के लिए नियम जोड़ने के लिए कैसे, किसी भी सलाह की सराहना की जाएगी।

पीएस मुझे वास्तव में रेडियोबटन सूची को कॉल करने की आवश्यकता है व्यक्तिगत रेडियो बटन की तुलना में

उत्तर

9

आप तत्व पर कक्षाओं को सेट करके एक नियम भी लागू कर सकते हैं। उदाहरण के लिए, यदि आप किसी इनपुट को "आवश्यक" श्रेणी देते हैं, तो आवश्यक नियम उस तत्व पर लागू होता है। ऐसा करने के लिए, आप नियंत्रण पर CssClass प्रॉपर्टी का उपयोग करेंगे। आपको यह सुनिश्चित करने के लिए रेडियोबटन लिस्ट जैसे यौगिक नियंत्रणों के साथ प्रयोग करने की आवश्यकता हो सकती है कि कक्षा को इनपुट तत्वों पर लागू किया जा रहा है, न कि कंटेनर। यदि आपको इससे परेशानी है, तो ऐसा करने का एक तरीका चयनकर्ता के आधार पर पेज लोड के बाद jQuery का उपयोग करके कक्षा को जोड़ना होगा।

<asp:RadioButtonList id="RadList" runat="server" CssClass="required"> 
    ... 
</asp:RadioButtonList> 

या

<script type="text/javascript"> 
    $(function() { 
      $(':radio').addClass('required'); 
      $('form').validate(); 
    }); 
</script> 

एक जटिल के लिए, वर्ग-आधारित नियम आप addClassRules का उपयोग कर नए नियमों जोड़ सकते हैं।

<script type="text/javascript"> 
    $(function() { 
     $.validator.addClassRules({ 
      range0to10: { 
        range: [0, 10] 
      }, 
      name: { 
        minlength: 2, 
        required: true 
      } 
     }); 
     $('form').validate(); 
    }); 
</script> 

<form ... > 
<input type="text" name="rating" id="rating" class="range0to10" /> 
<input type="text" name="firstName" id="firstName" class="name" /> 
<input type="text" name="lastName" id="lastName" class="name" /> 
</form> 
+0

हाँ इसके लिए धन्यवाद, मैं सराहना करता हूं कि यह आवश्यक नियमों के लिए काम करेगा जैसे कि आवश्यकता है लेकिन क्या आप सीमा जैसे कुछ परिभाषित करने में सक्षम होंगे: [0,10]? – Monkeeman69

+0

दरअसल, यदि आप addClassRules विधि का उपयोग करते हैं तो यह मुश्किल नहीं है। मैं अपडेट करूंगा। – tvanfosson

+0

धन्यवाद देखने के लिए अच्छा होगा। – Monkeeman69

1

इस के दिनों के बाद ड्राइविंग मुझे पागल, पूछ सवाल मुझे सोच कैसे ठीक लौटने तत्व प्राप्त करने के लिए, और मैं staright दूर संदर्भित की इस पद्धति का जो मुझे यह करने के लिए अनुमति देता है में आए मिला:

$("input:radio[name='ctl00$ContentPlaceHolder1$dgQuestions$ctl14$iRadList_Col0']").rules("add", { required: true }); 
+5

नोट: आप उस चयनकर्ता को $ ("इनपुट: रेडियो [नाम $ = 'iRadList']") को छोटा कर सकते हैं। नियम ~ $ नाम के बाद नाम किसी भी तत्व का चयन करता है जो iRadList के साथ समाप्त होता है <- –

+0

पढ़ने के लिए आसान यह एक स्मार्ट टिप है बॉबी। –

संबंधित मुद्दे