2015-12-25 13 views
10

làm thế nào tôi có thể nhận được giá trị của tùy chọn được chọn trong Select2 sử dụng select2:unselectLàm thế nào để nhận được giá trị của Select2: bỏ chọn

$('#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'); 

trong mã trên báo chương trình 'null'

tôi cần phải sử dụng select2:unselect vì 'thay đổi 'sự kiện sẽ có nghĩa là :select:unselect cả hai.

+1

có thể giúp https://github.com/select2/select2/issues/2959 –

+0

không đó không phải là trường hợp trường hợp đã được kích hoạt nhưng tôi không thể lấy giá trị của các tùy chọn được chọn. @ Mohamed-Yousef cảm ơn anyway. –

Trả lời

4

Cuối cùng, tôi đã có giải pháp và đó là: Giá trị của tùy chọn không được chọn chỉ khả dụng trước khi nó được bỏ chọn. Không hề select2:unselect thay vì tại select2:unselecting bây giờ mã sẽ là:

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

Trên thực tế, giá trị dữ liệu nằm bên trong Object sự kiện. Sẽ hữu ích nếu bạn đang xử lý nhiều giá trị select2.

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

Cụ thể, 'e.params.data.id' là' giá trị' của mục đã chọn/không được chọn và 'e.params.data.text' là nhãn' innerText'. –

+0

Đây phải là câu trả lời! –

2

Đây là câu hỏi cũ nhưng có thể câu trả lời này sẽ giúp ai đó. Tôi đang sử dụng Select2 v4.0.3 với nhiều giá trị/thẻ và chỉ cần ID của một số cụ thể được xóa. Tôi thực sự không muốn sử dụng sự kiện unselecting như được đề cập trong các câu trả lời khác. Trong trường hợp unselect không có đối tượng args, vì vậy bạn có thể nhận được ID của người bạn đang cố gắng để loại bỏ như thế này ...

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

Vâng bạn thân, tôi đã đề cập điều này nhiều lần nếu tôi có thể. – dps

0

Lấy giá trị tùy chọn cụ thể nếu bạn đang sử dụng nhiều thẻ:

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

Đây là giải pháp để thay đổi màu nền của thành phố trong bản đồ SVG tìm kiếm tên thành phố cụ thể. Hy vọng điều này có thể giúp bạn

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

Đối với townColor() phương pháp Tôi đang đi qua các văn bản (tên thành phố) của phần tử Select2 không được chọn và liên tục đặt tên unHighLightColor chứa tên màu.

0

trên Select2 4.0.3 i'am tìm thấy e.params đã được thay đổi. Vì vậy, để tìm id từ bỏ chọn mục, hãy thay đổi mã của bạn như sau:

$('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

Phần tử không được chọn đi qua e.params.data. Chúng tôi có thể truy cập giá trị của nó bằng cách sử dụng 'id' và nếu bạn cần văn bản, bạn có thể sử dụng 'data.text'.

$("select").on("select2:unselect", function (e) { 
      var value= e.params.data.id; 
      alert(value); 
    }); 
Các vấn đề liên quan