2014-07-24 7 views
6

मैं div को ड्रॉपडाउन सूची में "संलग्न" करना चाहता हूं। क्या यह संभव है?ड्रॉप या ड्रॉप को ड्रॉपडाउन सूची में जोड़ें

मैं कुछ इस तरह की आवश्यकता होती है:

enter image description here

स्पष्ट है कि, मैं उचित dropdownlist नियंत्रक में div जोड़ने की जरूरत नहीं है। मुझे बस संलग्न करने की जरूरत है।

क्या मैं अब तक और काम नहीं कर की कोशिश की है:


एचटीएमएल:

<select id="platypusDropDown"> 
    <option value="duckbill">duckbill</option> 
    <option value="duckbillPlatypus">duckbillPlatypus</option> 
    <option value="Platypus">Platypus</option> 
    <option value="Platypi">Platypi</option> 
</select> 

<div id="addCategory"> 
    <input id="categoryInput" type="text" /> <br/> 
    <input id="categoryInputAddBtn" type="button" value="Add new" /> 
</div> 

जे एस:

$('#platypusDropDown').click(function() { 
    var myDiv = document.getElementById('addCategory'); 
    this.append(myDiv); 
}); 

कोई समाधान? अग्रिम में धन्यवाद।

+0

वहाँ होना चाहिए कुछ 'css' भूमिका स्पष्ट रूप से संलग्न करने के लिए और इस शो छिपाने नाटकों –

+0

को' $ (myDiv) .after अपने js लाइन 'this.append (myDiv)' बदलें ($ (this)) '। या '.after() 'के बजाय, आप' .insertAfter() ':) – WoIIe

+0

आज़मा सकते हैं क्या यह पहेली आपकी आवश्यकता को पूरा करती है? http://jsfiddle.net/8FkA4/58/ SlyBeaver द्वारा GIVEN? –

उत्तर

7

मैं ऐसा नहीं सोचता, आप क्या हासिल करने की कोशिश कर रहे हैं यहाँ का चयन dropdown.What का उपयोग कर सकता है, मैं क्या करेंगे है मेरी एचटीएमएल कोड और उपयोग को संशोधित सीएसएस शैली।

<style type="text/css"> 
    ul{ list-style: none; 
     margin: 0; 
     padding: 0; } 
    </style> 

यहां मेरा HTML कोड है: ड्रॉपडाउन के बजाय, मैं यहां उल ली लिस्टिंग तत्व का उपयोग कर रहा हूं।

<div class="select-wrapper"> 
    <a href="javascript:void(0)" id="slideDropDown">Select Dropdown</a> 
    <ul id="platypusDropDown" style="display:none;"> 
    <li rel="duckbill">duckbill</li> 
    <li rel="duckbillPlatypus">duckbillPlatypus</li> 
    <li rel="Platypus">Platypus</li> 
    <li rel="Platypi">Platypi</li> 
    </ul> 
</div> 

    <div class="wrapper" style="display:none;"> 
    <div id="addCategory"> 
    <input id="categoryInput" type="text" /> <br/> 
    <input id="categoryInputAddBtn" type="button" value="Add new" /> 
    </div> 
    </div> 


    Here is my JS code: 

    <script type="text/javascript"> 
    $(document).ready(function(){ 
     var flg = 0; 
     $('.select-wrapper').click(function(){ 
       flg++; 
       if(flg == 1){ 
        $this_html = jQuery('.wrapper').html(); 
        $("#platypusDropDown").append("<li>"+$this_html+"</li>"); 
       } 

       $("#platypusDropDown").slideToggle(); 
     }); 
    }); 
</script> 
+0

अच्छा समाधान! केवल समस्या यह है कि जब इनपुट फ़ील्ड चुना जाता है तो ड्रॉपडाउन स्वयं बंद हो जाता है। – Daniel

+0

नकली ड्रॉपडाउन +1 का उपयोग कर उसी तरह के समाधान का उत्तर देने जा रहा था। जैसा कि @ डैनियल ने कहा था, इनपुट का चयन नहीं किया जा सकता है, लेकिन ओपी ने इसे बंद होने पर exaclty नहीं कहा ... (otpion चयन या इनपुट दर्ज होने पर) –

1

आप चयनब्लॉक में DIV नहीं जोड़ सकते हैं। लेकिन आप चयन में विकल्प जोड़ सकते हैं:

$('#platypusDropDown').click(function() { 
    var myDiv = document.getElementById('addCategory'); 
    $(this).after(myDiv); 
}); 
+0

यह प्रत्येक 'क्लिक' ईवेंट पर 'div' जोड़ देगा, अब तक अच्छा नहीं है –

+0

ओह, क्षमा करें। '.append (...)' to '.after (myDiv)' – SlyBeaver

+0

को प्रतिस्थापित करें, मैं अपना उत्तर ठीक करने का प्रयास करूंगा। उन्हें दोबारा देखें। – SlyBeaver

1

jQuery भाग छोड़ दें। डीवी युक्त चयन के साथ एचटीएमएल स्थिर मार्कअप सेट करके यह संभव नहीं है। तो यह संभव नहीं है। आप मार्कअप का उपयोग कर सकते हैं, लेकिन फिर भी यह ब्राउज़र में छिप जाएगा, भले ही आप फायरबग में देख सकें, div ड्रॉपडाउन से जुड़ा हुआ है।

लेकिन यू के लिए पूछ r यदि: ड्रॉपडाउन में विकल्प के रूप में पाठ जोड़ें, फिर,

कार्य FIDDLE

$('#categoryInputAddBtn').click(function() { 
    var myDiv = $('#categoryInput').val(); 
    //this.append(myDiv); 
    var option = $('<option/>'); 
    option.attr({ 'value': 'myValue' }).text(myDiv); 
    $('#platypusDropDown').append(option); 
}); 
+0

वह वह नहीं है जो वह पूछ रहा था। प्रश्न स्थिति के बारे में नहीं था, कार्यशीलता के बारे में। – Daniel

+0

मैंने पहले ही कहा है, 3 लाइनों की जांच करें। फिर देखें 'लेकिन यदि आप पूछ रहे हैं: ड्रॉपडाउन में विकल्प के रूप में टेक्स्ट जोड़ें, तो, कृपया उत्तर सही ढंग से पढ़ें –

0

जहां तक ​​मैं जानता हूँ कि इस चयन/विकल्प टैग मानक HTML के साथ संभव नहीं है। लेकिन कई अलग-अलग पुस्तकालय हैं जो ड्रॉपडाउन कार्यक्षमता को अनुकरण करते हैं और अतिरिक्त कार्यक्षमताओं को देते हैं। उनमें से एक UI Kit है जो इसे कई अन्य सुविधाओं के बीच प्रदान करता है। आप ड्रॉपडाउन में तथाकथित 'ग्रिड' घटक जोड़ सकते हैं जो वास्तव में आप चाहते हैं कि कुछ भी हो सकता है। शीर्षक 'ग्रिड' के तहत here पर विस्तार से देखें।

0

आप ड्रॉपडाउन सूची में इनपुट मूल्य जोड़ सकते हैं।

var $platypusDropDown = $('#platypusDropDown'); 

$('#categoryInputAddBtn').on('click', function() { 
    // Value of div input 
    var $category = $('#categoryInput').val(); 

    // Add to dropdown list 
    $platypusDropDown.append('<option value="' + $category + '">' + $category + '</option>'); 
}); 
+1

वह कहता है कि मुझे उचित ड्रॉपडाउनलिस्ट नियंत्रक में div जोड़ने की आवश्यकता नहीं है। – SlyBeaver

0

आप देख सकते हैं अगर यह यह आप को प्राप्त करने के आपको क्या चाहिए एक बहुत मदद मिलेगी,

add text box with dropdown

+1

लेकिन ओपी केवल अपने तरीके से उपयोग करना चाहता है, उसे किसी भी विकल्प की आवश्यकता नहीं है। –

0

क्यों आप विकल्प div जोड़ने whant? आप इस तरह की कोशिश कर सकते:

$('#platypusDropDown').click(function() { 
    var dropHeight = $(this.options[0]).height() * this.options.length; 

    if($(this).data('open')) { 
     $(this).data('open', false); 
     $('#addCategory').css('padding-top', '0px') 
     return; 
    } 

    $('#addCategory').css('padding-top', dropHeight + 'px') 
    $(this).data('open', true); 
}); 

JSFIDDLE DEMO

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