2013-05-07 20 views
16

से आइटम को रिफ्रेश यह मुझे पागल ड्राइव! क्यों नहीं कर सकते Select2 अपने पृष्ठ पर स्पष्ट तरीके या उदाहरण कैसे Select2 पर साधारण CRUD हेरफेर करने के लिए :)Select2 ड्रापडाउन गतिशील रूप से जोड़ने, हटाने और

लागू मैं एक Select2 जो एक ajax कॉल से डेटा प्राप्त की है।

<input id="valueg" type="hidden" style="width: 300px;" data-placeholder="Select a Conference" /> 

$("#valueg").select2({ 
      data: conferences, 
      allowClear: true, 
      initSelection: function (element, callback) { 
          var data = { id: element.val(), text: element.val() }; 
          callback(data); 
         } 
}).on("change", function (e) { 
// show data in separate div when item is selected    
}); 

क्या कोई भी चयन विधि से किसी आइटम को हटाने और जोड़ने का एक स्पष्ट तरीका प्रदान कर सकता है।

उदाहरण के लिए:

मैं db से ajax कॉल के माध्यम से एक आइटम जोड़ने, और सिर्फ Select2 के लिए एक विकल्प संलग्न करें और के रूप में चयनित यह सेट करना चाहते हैं।

मैं db से ajax के माध्यम से किसी आइटम को निकालने, और Select2 से एक विकल्प निकालना चाहते हैं और कोई विकल्प चयनित नहीं है।

उत्तर

17
अपने उदाहरण मैं देख सकता हूँ कि आप छिपा हुआ तत्व को Select2 प्लगइन संलग्न से

। इसके अलावा आप इस मामले में अजाक्स कॉल का उपयोग परिणामों को भरने के लिए, इसलिए यदि आप आप साधारण कॉल सूची में एक नया विकल्प जोड़ने की जरूरत:

$('#valueg').select2('val', 'YOUR_VALUE'); 

एक ही तरीका है एक कंटेनर के रूप में चयन तत्व का उपयोग करने के मामले में है कि मैं पाया गया है कि नए विकल्पों के साथ प्लगइन को फिर से शुरू करना है ... इस तरह कुछ:

var el = $('select[name="type"]', '#details-form'); 
var temp = el.select2('val'); // save current value 
temp.push(NEW_VALUE); // append new one 
var newOptions = '<option value="1">1</option><option value="2">2</option>'; 
el.select2('destroy').html(newOptions).select2().select2('val', temp); 
4

मुझे एक ही समस्या थी। यह मैं कैसे इसे हल है

यह Select2 कोई लेना देना नहीं, जोड़ तोड़ के लिए ही मुझे इसके

2

मैंने किया था इस तरह से काम करने लगता है है:

var $select2 = $('#valueg').select2(); // getting the select2 
var item = 'xyz'; // item to be added 
$select2.val(function(i, val) { // val can take function as parameter 
    val = val || []; // if value is null init val as an array 
    val.push(item); // add the new item 
    return val; 
}).trigger("change"); //refresh 

आशा है कि मदद करता है

0

यह बहुत देर हो चुकी है ... लेकिन यह लोगों के लिए मेरा समाधान है कि अभी भी यह समस्या है:

html = ""; 
jQuery("#select_2 option").each(function() 
{ 
    html += '<option value="'+jQuery(this).attr("value")+'">'+jQuery(this).text()+'</option>'; 
}); 
html += '<option value="NEWVALUE">NEW OPTION</option>'; 
jQuery("#select_2").html(html); 
0

मेरे मामले में, चुनें अंतर्निहित जोड़ तोड़ के बाद जोड़ने के लिए मुख्य बात यह है:

$ selectlist.trigger ("परिवर्तन"); // $ selectList अंतर्निहित चयन तत्व है।

चयन 2 चुनिंदा घटना के आसपास चयन 2 का चयन करता है, इसलिए "परिवर्तन" को चुनने के विकल्प को चुनने के विकल्प को अद्यतन करें।

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