Select2 संस्करण के लिए> = 4.0.0
अन्य समाधान काम नहीं कर सकते हैं, हालांकि निम्नलिखित उदाहरणों पर काम करना चाहिए।
समाधान 1: ट्रिगर करने के लिए सभी संलग्न परिवर्तन घटनाओं का चयन करता है, जिसमें चयन 2 भी शामिल है
$('select').val('1').trigger('change');
समाधान 2: कारण सिलेक्ट 2 चेंज 2 इवेंट को ट्रिगर करने के लिए
$('select').val('1').trigger('change.select2');
इन उदाहरणों के लिए यह jsfiddle देखें । समाधान 2 के लिए @minlare को धन्यवाद।
स्पष्टीकरण:
कहते हैं कि मेरे पास लोगों के नामों के साथ एक सबसे अच्छा दोस्त है। इसलिए बॉब, बिल और जॉन (इस उदाहरण में मुझे लगता है कि मूल्य नाम के समान है)। पहले मैं अपने चयन पर select2 इनिशियलाइज़ करता हूँ:
$('#my-best-friend').select2();
अब मैं मैन्युअल रूप से ब्राउज़र में बॉब का चयन करता हूं। अगला बॉब कुछ शरारती करता है और मैं अब उसे पसंद नहीं करता। इसलिए प्रणाली मेरे लिए बॉब को अचयनित करती है:
$('#my-best-friend').val('').trigger('change');
या यह कहें कि मैं सिस्टम को बॉब के बजाय सूची में अगले का चयन करता हूं:
// I have assume you can write code to select the next guy in the list
$('#my-best-friend').val('Bill').trigger('change');
चयन 2 वेबसाइट पर नोट्स (देखें पदावनत और हटाए गए तरीके ) जो दूसरों के लिए उपयोगी हो सकते हैं:
.select2 ('वैल')
"वैल" विधि को हटा दिया गया है और Select2 4.1 में हटा दिया जाएगा। पदावनत विधि में अब ट्रिगरचेंज पैरामीटर शामिल नहीं है।
आपको इसके बजाय सीधे अंतर्निहित तत्व पर कॉल करना चाहिए। यदि आपको दूसरे पैरामीटर की आवश्यकता है (ट्रिगरचेंज), तो आपको तत्व पर .trigger ("परिवर्तन") भी कॉल करना चाहिए।
$('select').val('1').trigger('change'); // instead of $('select').select2('val', '1');