如何获得select2的值:取消选择

时间:2015-12-25 14:32:58

标签: javascript jquery select2

如何使用select2:unselect

获取Select2中未选择的选项的值
$('#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');

在上面的代码提示中显示' null'

我需要使用select2:unselect因为'更改'事件将感知:select:unselect两者。

9 个答案:

答案 0 :(得分:13)

实际上,数据值在事件Object内。如果您正在处理select2多个值,那将非常有用。

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

答案 1 :(得分:6)

这是一个较老的问题,但也许这个答案会对某人有所帮助。我使用带有多个值/标签的Select2 v4.0.3,只需删除特定ID的ID。我真的不想使用其他答案中提到的unselecting事件。在unselect事件中没有args对象,因此您可以获取您要删除的对象的ID ...

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.
    */

答案 2 :(得分:4)

最后,我得到了解决方案,那就是: 未选中的选项的值仅在取消选中之前可用。不是select2:unselect而是select2:unselecting 现在代码将是:

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

答案 3 :(得分:3)

未选中的元素正在通过e.params.data。我们可以使用'id'访问它的值,如果你需要文本,你可以使用'data.text'。

$dateTime = $ticketConversation.posted_at;
$data = explode(" ", $dateTime);
echo $data[0] ." at ".$data[1]." hours";

答案 4 :(得分:0)

如果您使用多个代码,请获取具体的选项值:

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

答案 5 :(得分:0)

这是我在SVG地图中更改城市背景颜色的解决方案,用于查找特定城市的名称。希望这可以帮到你

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

方法townColor()我传递了未选择的select2元素的文本(城市名称)和名为unHighLightColor的常量,它保​​存了颜色名称。

答案 6 :(得分:0)

在Select2 4.0.3上我发现e.params已被更改。因此,要从取消选择的项目中查找ID,请更改以下代码:

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

答案 7 :(得分:0)

使用$(this).val(),这将返回选择中标记的最后一个值

message

答案 8 :(得分:0)

@Mahmaood ali 谢谢您的解决方案,它对我来说就像一个魅力。

对于@Vipin Kr。辛格问题。

retrieve-boundary

通过这种方式,您一次只能获得一个选定或未选定的值。