选择特定选项时,禁用所选多选下拉列表中的所有选项

时间:2015-06-02 06:12:23

标签: javascript jquery html drop-down-menu jquery-chosen

public override int Read(byte[] buffer, int offset, int size)
{
    // current position not in current mapping?
    if (position < mapOffset)
    {
        // relocate the view
    }

    // compute how many bytes can be read from the current segment
    int read = Math.Min(size, (mapOffset + mapSize) - position);

    // copy those bytes to the buffer
    Marshal.Copy(...);

    position += read;

    if (size > read)
    {
        // recurse for the remaining bytes
        read += Read(buffer, offset + read, size - read);
    }

    return read;
}

Example Fiddle

要求说明:

  1. 我使用选择的插件获得多选下拉列表
  2. 第一个选项是“全部
  3. 那些习惯于选择下拉列表的人,他们知道选择一个选项时(来自选择的多选)并显示在下拉文字区域 -like字段,您将自动从列表菜单中看到已禁用
  4. 我想要的是,当第一个选项“全部”被选中时,列表菜单中的所有其他选项也将禁用
  5. 下拉文字区域字段中的“所有”选项被删除时(通过点击交叉删除所选内容)选项),然后所有选项将启用

2 个答案:

答案 0 :(得分:4)

答案

$(document).ready(function(){
    $('.chosen-select').chosen({});

    $('.chosen-select').on('change', function(evt, params) {
       var $s = $(this);

        if (params.selected && params.selected == "Any") 
        {
            // disable the select
            $s.children('option').not(':selected').each(function(){
            $(this).attr('disabled','disabled');
            });
        }
        else if (params.deselected && params.deselected == "Any") 
        {
            // enable back
            $s.children('option').each(function(){
                $(this).removeAttr('disabled');
            });
        }
        // force chosen update
        $('.chosen-select').trigger('chosen:updated');
    }); 
});

答案 1 :(得分:0)

$(document).ready(function () {
    $("#foobar").chosen().on('chosen:showing_dropdown',function() {
            $('.chosen-select').attr('disabled', true).trigger('chosen:updated');
            $('.chosen-select').attr('disabled', false).trigger('chosen:updated');
            $('.search-choice-close').hide();
    });
    $('.search-choice-close').hide();
});