2012-10-22 14 views
5

पर आधारित फ़ील्ड दिखाएं मेरे पास निम्न चुनौती है।चुनिंदा मूल्य

मेरे पास एक प्रवेश फ़ॉर्म है जिससे व्यक्ति नई प्रविष्टि जोड़ सकते हैं और अनुमोदित होने पर वे इसे संपादित भी कर सकते हैं। चुनौती एक चयन के आधार पर विशिष्ट फ़ील्ड को छिपाना है। जब कोई उपयोगकर्ता एक नई प्रविष्टि जोड़ता है, तो उसे एक विशिष्ट श्रेणी का चयन करना होगा। उस पर आधारित, कुछ फ़ील्ड छुपाए गए हैं।

<select name="entry.parent" size="1" style="width: 360px;" id="SPCatChooserSl" class="required"> 
<option value="">Selecteer categorie</option> 
<option selected="selected" value="55">- Option 1</option> 
<option value="59">- Option 2</option> 

</select> 

<div id="option1"> 
<p>Hier comes option 1</p> 
</div> 
<div id="option2"> 
<p>Here comes option 2</p> 
</div> 

<script> 
jQuery(function() { 
jQuery('#option1').hide(); 
jQuery('#option2').hide(); 
}); 

jQuery(function() { 
jQuery("#SPCatChooserSl").change(function() { 
    if (this.value == '55') { 
     jQuery('#option1').show(); 
    } else { 
     jQuery('#option1').hide(); 
    } 
    if (this.value == '59') { 
     jQuery('#option2').show(); 
    } else { 
     jQuery('#option2').hide(); 
    } 
    }); 
    }); 
    </script>  

यह काम करता है एक उपयोगकर्ता अभी भी एक वर्ग चुनने के लिए जब:

इस कोड है कि मैं अब तक का उपयोग कर रहा है। यह चयन के आधार पर खेतों को छुपाता है।

हालांकि जब कोई उपयोगकर्ता प्रविष्टि संपादित करता है, तो श्रेणी पहले से ही चुनी जाती है और संभवतः बदली नहीं जाएगी। इसके कारण, DIVS विकल्प 1 और विकल्प 2 छुपाए गए हैं और चूंकि उपयोगकर्ता श्रेणी का चयन नहीं करता है, इसलिए divs कभी दिखाई नहीं देगी।

तो सवाल यह है कि: मैं चयन सूची में किसी विशिष्ट मान की जांच कैसे कर सकता हूं, उपयोगकर्ता के बिना सही फ़ील्ड दिखा सकता हूं।

मुझे आशा है कि मेरे सवाल/challange स्पष्ट है :) अग्रिम में

धन्यवाद !!!!!!!

उत्तर

1

आप विकल्पों को अपडेट कर सकते हैं जब दस्तावेज़ तैयार हो जाता है:

jQuery(function() { 
jQuery('#option1').hide(); 
jQuery('#option2').hide(); 
}); 

function updateOption() { 
    jQuery('#option1').toggle(this.value == '55'); 
    jQuery('#option2').toggle(this.value == '59'); 
} 

jQuery(document).ready(function() { 
    jQuery("#SPCatChooserSl").each(updateOption); 
    jQuery("#SPCatChooserSl").change(updateOption); 
}); 

फिडल: http://jsfiddle.net/Mwnjk/

+0

यह एक आकर्षण की तरह काम करता है कि आप अपने और त्वरित जवाब के लिए बहुत बहुत धन्यवाद !! – user1737711

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