Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 选择器选择器多重选择,选择特定选项时取消选择选项_Jquery_Select_Multiple Select_Unselect - Fatal编程技术网

Jquery 选择器选择器多重选择,选择特定选项时取消选择选项

Jquery 选择器选择器多重选择,选择特定选项时取消选择选项,jquery,select,multiple-select,unselect,Jquery,Select,Multiple Select,Unselect,我想和你分享这一点,我可以节省一些时间。几天前,我试图弄清楚如果在selectpicker插件multiple selection中选择另一个选项,如何取消选择某些选项。这是我的代码,它可以帮你们节省很多时间 谢谢 谢谢你的见解,但是下次你应该发布一个特定的问题,然后回答你自己的问题,而不是以这种非问题的形式发布。参见:关于问答式问题。 $('.selectpicker').on('change', function (e) { // take jquery val()s array f

我想和你分享这一点,我可以节省一些时间。几天前,我试图弄清楚如果在selectpicker插件multiple selection中选择另一个选项,如何取消选择某些选项。这是我的代码,它可以帮你们节省很多时间 谢谢


谢谢你的见解,但是下次你应该发布一个特定的问题,然后回答你自己的问题,而不是以这种非问题的形式发布。参见:关于问答式问题。
$('.selectpicker').on('change', function (e) {
    // take jquery val()s array for multiple
    //store the selected value
    var $selectedOption = $(this).find(':selected');
    var attending = $selectedOption.data('attending');
    var checkAttendings = [];
    $selectedOption.each(function(index){
        checkAttendings.push($(this).data('attending'));
    });
    // take jquery vals() array for multiple
    var value = checkAttendings || [];

    // take the existing old data or create new
    var old = $(this).data('old') || [];

    // take the old order or create a new
    var order = $(this).data('order') || [];

    // find the new items
    var newone = value.filter(function (val) {
        return old.indexOf(val) == -1;
    });
    // find missing items
    var missing = old.filter(function (val) {
        return value.indexOf(val) == -1;
    });
    // console.log(missing,newone)
    // remove missing items from order array and add new ones to it
    $.each(missing, function (i, miss) {
        order.splice(order.indexOf(miss), 1);
    })
    $.each(newone, function (i, thing) {
        order.push(thing);
    })

    // save the order and old in data()
    $(this).data('old', value).data('order', order);

    if(JSON.stringify(order) == JSON.stringify([1,2]) || JSON.stringify(order) == JSON.stringify([0,2]))
    {
        attending = 2;
    }


    //if current selected array equal to [0,2] that means user trying to check TBD
    if(JSON.stringify(order) == JSON.stringify([1,0]) || JSON.stringify(order) == JSON.stringify([2,0]))
    {
        attending = 0;
    }

    //if current selected array equal to [0,1]  or [2,1] that means user trying to check Attending date
    if(JSON.stringify(order) == JSON.stringify([0,1]) || JSON.stringify(order) == JSON.stringify([2,1])){
        attending = 1;
    }

    console.log(order, 'attending :'+attending);

    if(attending == 1)
    {

        $(this).next().find('button').removeClass('btn-default btn-danger btn-success').addClass('btn-success');
        var tbd = $(this).find('[data-attending="2"]');
        var notAttending = $(this).find('[data-attending="0"]');
        if(tbd.is(':selected'))
        {
            tbd.prop('selected',false);

            $(this).selectpicker('refresh');
        }

        if(notAttending.is(':selected'))
        {
            notAttending.prop('selected',false);
            $(this).selectpicker('refresh');
        }
        order.reverse();
    }

    if(attending == 2)
    {

        $(this).next().find('button').removeClass('btn-default btn-danger btn-success').addClass('btn-default');

        var coming = $(this).find('[data-attending="1"]');
        var not = $(this).find('[data-attending="0"]');

        if(coming.is(':selected'))
        {
            console.log('comming');
            coming.prop('selected',false);
            $(this).selectpicker('refresh');
        }
        if(not.is(':selected'))
        {
            console.log('not comming');
            not.prop('selected',false);

            $(this).selectpicker('refresh');
        }
        order.reverse();
    }

    if(attending == 0)
    {
        var screening_date_id   = 0;

        $(this).next().find('button').removeClass('btn-default btn-danger btn-success').addClass('btn-danger');

        var yesComing = $(this).find('[data-attending="1"]');
        var tbd = $(this).find('[data-attending="2"]');

        if(yesComing.is(':selected'))
        {
            yesComing.prop('selected',false);
            $(this).selectpicker('refresh');
        }
        if(tbd.is(':selected'))
        {
            tbd.prop('selected',false);

            $(this).selectpicker('refresh');
        }
         order.reverse();
        console.log(order, 'attending :'+attending);
    }
    //order.length = 0;
});