2012-06-13 20 views
6

पर आधारित गतिशील रूप से नियमों को जोड़ना/निकालना मेरे पास 1-4 से मान के साथ एक ड्रॉपडाउन चयनकर्ता है। चयन के आधार पर, फॉर्म में आने वाले इनपुट छिपे हुए हैं और सत्यापन प्रत्येक के लिए आवश्यक है। उदाहरण के लिए, यदि 2 चुना गया है, तो इनपुट 1-2 दिखाए जाते हैं और सत्यापन आवश्यक होता है जबकि 3-4 छुपाए जाते हैं और सत्यापन हटा दिया जाता है।Jquery प्रमाणीकरण: ड्रॉपडाउन चयन

$("#dropdownSelector").change(function() { 
inputtohide = $(this).val(); 
$('input[id*=conviction]').slice(0, inputtohide).show().rules("add", {required: "#convictions_0:checked" }); 
$('input[id*=conviction]').slice(inputtohide, 4).hide().rules("remove", {required: "#convictions_0:checked" }); 
$("#thisform").validate(); 
}); 

यह ठीक काम करता है, तथापि (सत्यापन प्लगइन राज्यों के लिए प्रलेखन के रूप में) मान्यता केवल लौटे पहले तत्व के लिए जोड़ा गया है।

मैं अन्य पदों से समझते हैं, जो निम्न कोड प्रत्येक इनपुट के लिए मान्यता जोड़ना चाहिए: -

$("#thisform").validate(); 
$("input[id*=conviction]").each(function() { 
    $(this).rules("add", {required: "#convictions_0:checked" }); 

    }); 

मेरा प्रश्न है कि कैसे मैं कोड के दो टुकड़े गठबंधन करते हैं? किसी भी मदद की बहुत सराहना की, धन्यवाद।

उत्तर

5

आप बस सभी तत्वों को यह रिटर्न से अधिक पुनरावृति करने के लिए आपके .slice() परिणाम पर .each() समारोह उपयोग करने की आवश्यकता:

$('input[id*=conviction]').slice(0, inputtohide).each(function(){ 
    $(this).show().rules("add", {required: "#convictions_0:checked" }); 
}); 

$('input[id*=conviction]').slice(inputtohide, 4).each(function(){ 
    $(this).hide().rules("remove", {required: "#convictions_0:checked" }); 
}); 

आशा इस मदद करता है!

+0

धन्यवाद @ फ्रीकोन, यह एक बड़ी मदद थी। इसमें नियम सही तरीके से जोड़े गए, लेकिन शो/छुपाएं सही तरीके से काम करना बंद कर दिया। मैंने इसे थोड़ा सा बदल दिया और यह अब काम करता है - धन्यवाद: - 'कोड' $ (' इनपुट [आईडी * = दृढ़ता] ')। स्लाइस (0, इनपुटtohide) .show()। प्रत्येक (फ़ंक्शन() {$ (यह) । नियम ("जोड़ें", {आवश्यक: "# convictions_0: चेक किया गया"});}); $ ('इनपुट [आईडी * = दृढ़ता]') स्लाइस (इनपुटtohide, 4) .hide()। प्रत्येक (फ़ंक्शन() {$ (यह)। नियम ("निकालें", {आवश्यक: "# convictions_0: चेक किया गया" });}); 'कोड' – naturelab

+0

@naturelab मुझे यकीन नहीं है कि कोड सही होने के बाद 'शो' /' छुपाएं क्यों काम करना बंद कर देगा, लेकिन मुझे खुशी है कि मैं मदद कर सकता हूं! –

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