2010-04-16 9 views
9

मैंने चारों ओर देखने की कोशिश की है और इसी तरह की समस्याएं हैं, लेकिन मेरा रास्ता अधिक सरल है, लेकिन फिर भी, मुझे इनके भीतर कोई समाधान नहीं मिल रहा है मंचों।jQuery: चुनिंदा ड्रॉप डाउन से एक तत्व दिखाएं, इसे छिपाएं जब अन्य विकल्प

jQuery सीखते समय, मैं एक डीआईवी दिखाने की कोशिश कर रहा हूं जब एक चयन ड्रॉप डाउन से कोई आइटम/विकल्प चुना जाता है, और उसी ड्रॉप को छुपाएं जब चयन ड्रॉप डाउन में कोई अन्य विकल्प चुना जाता है।

चयन HTML:

<select name="source" id="source"> 
    <option value="null" selected="selected">&mdash;Select&mdash;</option> 
    <option value="s1">Source 1</option> 
    <option value="s2">Source 2</option> 
    <option value="sother">Other</option> 
</select> 

DIV मैं दिखाने के लिए जब 'अन्य' का चयन किया गया की जरूरत है:

<div id="specify-source">Other source here...</div> 

जब चयन मेनू में किसी भी अन्य विकल्प चुना जाता है, इसके बाद के संस्करण DIV नहीं करना चाहिए दिखाई दे

मैं इस jQuery की कोशिश की है, लेकिन निश्चित रूप से यह ठीक से काम नहीं करता है:

$(function() { 
$.viewMap = { 
    'sother' : $('#specify-source') 
    };  
    $('#source').change(function() { 
    // hide all 
    $.each($.viewMap, function() { this.hide(); }); 
    // show current 
    $.viewMap[$(this).val()].show(); 
    }); 
}); 

किसी भी मदद की तुम मुझे दे सकते हैं, मैं बहुत आभारी।

धन्यवाद,

उत्तर

20

मैं देख रहा हूँ कि आप को देखने के नक्शे के साथ क्या करने के लिए कोशिश कर रहे हैं क्या के साथ एक का चयन संभाल नहीं होंगे। साथ यह सरल बनाएं:

$('#source').change(function() { 
    ($(this).val() == "sother") ? $('#specify-source').show() : $('#specify-source').hide(); 
}); 
+0

जब से मैं stackoverflow.com लिए मैं वोट नहीं कर सकते नया हूँ, लेकिन इस सवाल का जवाब तुरंत काम किया। धन्यवाद बहुत अमित, इसकी सराहना करते हैं। अन्य लोगों के लिए उनकी सहायता के लिए धन्यवाद। –

+0

हो गया, मैं अब वोट करने में सक्षम हूं :) –

+0

हे, वापस आने के लिए धन्यवाद। – Amit

0

यह सबसे आसान तरीका है एक तत्व को छिपाने के लिए है:

<!DOCTYPE html> 
<html> 
<head> 
<style> 
div { background:#def3ca; margin:3px; width:80px; 
display:none; float:left; text-align:center; } 
</style> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
</head> 
<body> 

<button id="showr">Show</button> 
<button id="hidr">Hide</button> 
<div>Hello 3,</div> 

<div>how</div> 
<div>are</div> 
<div>you?</div> 
<script> 
$("#showr").click(function() { 
$("div:eq(0)").show("fast", function() { 
/* use callee so don't have to name the function */ 
$(this).next("div").show("fast", arguments.callee); 
}); 
}); 
$("#hidr").click(function() { 
$("div").hide(2000); 
}); 

</script> 
</body> 
</html> 
0

सरल:

$('.target').hide(); 

यहाँ और शो और छिपाने jQuery का एक उदाहरण है

$(function() { 
$("#specify-source").hide(); 

$("#source").change(function(){ 
    if ($(this).val() == "sother") 
     $("#specify-source").show(); 
    else 
     $("#specify-source").hide(); 
    }); 
}); 
0

अपने विचार को अनदेखा करते हुए मी एपी, यहां आप जाओ:

$("#source").change(function() { 
    var foo = false; 
    $("#source option:selected").each(function() { if ($(this).val() == "sother") foo = true; }); 
    if (foo) $('#specify-source').show(); else $('#specify-source').hide(); 
}).change(); 

क्या आप चाहते हैं कि मैं अपने सभी कोड के साथ कैसे शामिल करूं?

अन्य पोस्ट तरीकों के रूप में अच्छी तरह से काम करेंगे, लेकिन साथ काम नहीं करेंगे लेकिन @ एकाधिक = "एकाधिक"

0

मुझे लगता है कि DIV मैं प्रदर्शित करने के लिए जब 'अन्य' विकल्प, चयनित पृष्ठ प्रवेश करते समय छिपा हो की जरूरत थी की जरूरत है उल्लेख करना भूल गया, तो मैं .hide जोड़ा(); संपत्ति।

मैंने एक स्लाइडडाउन ('फास्ट') भी जोड़ा; प्रयोज्यता में मदद करने के लिए।

यहाँ अमित की मदद करने के लिए अपने अंतिम कोड धन्यवाद है:

$('#specify-source').hide(); 
$('#source').change(function() { 
($(this).val() == "sother") ? 
$('#specify-source').slideDown('fast') : $('#specify-source').hide(); 
}); 
संबंधित मुद्दे