2015-12-25 24 views
10

कैसे मैं ऊपर कोड चेतावनी शो 'अशक्त'Select2 का मूल्य प्राप्त करने के लिए कैसे: का चयन रद्द करें

में select2:unselect

$('#mySelect').on("select2:unselect", function(e){ 

    var unselected_value = $('#mySelect').val(); // using this shows 'null' 
    // or using below expression also shows 'null' 
    var unselected_value = $('#mySelect :selected').val(); 

    alert(unselected_value); 
}).trigger('change'); 

का उपयोग कर Select2 में नहीं चुना जाता विकल्प के मूल्य प्राप्त कर सकते हैं मैं select2:unselect उपयोग करने के लिए है, क्योंकि 'परिवर्तन की जरूरत है 'घटना :select और :unselect दोनों को समझ जाएगी।

+1

https://github.com/select2/select2/issues/2959 –

+0

नहीं है कि मामला ईवेंट को ट्रिगर करने जा रही है नहीं मदद मिल सकती है, लेकिन मैं इसे नहीं चुना विकल्प के मूल्य लाने के लिए सक्षम नहीं हूँ। @ मोहम्मद-यूसेफ वैसे भी धन्यवाद। –

उत्तर

4

अंत में, मुझे समाधान मिला है और यह है: अचयनित विकल्प का मान केवल अचयनित होने से पहले ही उपलब्ध है। select2:unselect बल्कि select2:unselecting पर पर अभी नहीं कोड होगा:

$('#mySelect').on("select2:unselecting", function(e){ 
     var unselected_value = $('#mySelect').val(); 
     alert(unselected_value); 
    }).trigger('change'); 
9

वास्तव में, डेटा मान घटना वस्तु के अंदर है। यदि आप select2 एकाधिक मानों से निपट रहे हैं तो यह उपयोगी होगा।

function(e){ 
    console.log(e.params.data) 
} 
+1

विशेष रूप से, 'e.params.data.id' चयनित/अचयनित आइटम का 'मान' है और' e.params.data.text' 'innerText' लेबल है। –

+0

यह जवाब होना चाहिए! –

2

यह एक पुराना सवाल है लेकिन शायद यह उत्तर किसी की मदद करेगा। मैं एकाधिक मान/टैग के साथ Select2 v4.0.3 का उपयोग कर रहा हूं और केवल विशिष्ट को हटाए जाने की आईडी की आवश्यकता है। मैं वास्तव में अन्य उत्तरों में उल्लिखित unselecting ईवेंट का उपयोग नहीं करना चाहता था। unselect होने की स्थिति में, कोई args वस्तु है, इसलिए आप अगर आप एकाधिक टैग का उपयोग कर रहे विशिष्ट विकल्प मान रही है जिसे आप इस तरह दूर करने के लिए कोशिश कर रहे हैं की आईडी प्राप्त कर सकते हैं ...

jQuery('.mySelect2').on("select2:unselecting", function(e){ 
    return true; // I don't use this unselecting event but here is how you could use it to get the ID of the one you are trying to remove. 
    console.log(e); 
    console.log(e.params); 
    console.log(e.params.args.data); 
    console.log(e.params.args.data.id); 
    //console.log(e.params.args.data.tag); data.tag is specific to my code. 
}); 

jQuery('.mySelect2').on('select2:unselect', function (e) { 
    console.log(e); 
    console.log(e.params); 
    console.log(e.params.data); 
    console.log(e.params.data.id); 
    //console.log(e.params.data.tag); data.tag is specific to my code. 

    /* 
    Now you can do an ajax call or whatever you want for the specific 
    value/tag that you are trying to remove which is: e.params.data.id. 
    */ 
+0

हाँ दोस्त, अगर मैं कर सकता तो मैं इसे एक से अधिक बार बढ़ा दूंगा। – dps

0

:

var unselected_value = $('#mySelect option:selected').val(); 
alert(unselected_value); 
0

यह मेरा समाधान है कि एक शहर के पृष्ठभूमि रंग को एसवीजी मानचित्र में विशिष्ट शहर के नाम की तलाश में बदलने का मेरा समाधान है। उम्मीद है कि यह आप विधि townColor() मैं पाठ (शहर का नाम) से गुजर रहा हूँ Select2 तत्व का चयन रद्द किया और निरंतर unHighLightColor नामित कि रंग नाम धारण के लिए

$(".js-example-diacritics").on("select2:unselect", function(evt) { 
       var element = evt.params.data.element; 
       townColor(element.text, unHighLightColor); 
      }); 

मदद कर सकता है।

0

चयन 2 4.0.3 पर मुझे e.params मिला था। तो, अचयनित आइटम से आईडी को खोजने के लिए, इस तरह अपना कोड बदलें:

$('select').on('select2:unselecting', function (e) { 
    var id = e.params.args.data.id; //your id 
    alert('Are You Sure ?'); 
    e.preventDefault(); 
    // Do something with your id 
}); 
0

नहीं चुना जाता तत्व e.params.data से गुजर रहा है। हम 'आईडी' का उपयोग करके अपने मूल्य तक पहुंच सकते हैं और यदि आपको टेक्स्ट की आवश्यकता है तो आप 'data.text' का उपयोग कर सकते हैं।

$("select").on("select2:unselect", function (e) { 
      var value= e.params.data.id; 
      alert(value); 
    }); 
संबंधित मुद्दे