如何自动选择多选框chzn-select-deselect?

加内什·巴布(Ganesh Babu)

我有一个多选chzn-select-deselect框。当我选择一个特定值时,我想一次选择多个值。我有以下HTML:

<select id="filter_list_dropdwn" class="inp direct_value_opp fl" multiple="multiple" name="data[value1][]">
       <option value="1" parent_id="0"> parent1</option>
       <option value="2" parent_id="1"> child1 of parent1</option>
       <option value="3" parent_id="1"> child2 of parent1</option>
       <option value="4" parent_id="3"> child of child3</option>
</select>

如果我选择parent1,则将自动选择其子级。工作脚本是这样的:

    $('#filter_list_dropdwn option:not(:selected)').live('click', function () {
        unselected = $(this);

        var parent_id = $(unselected).attr("value");
        $('#filter_list_dropdwn option[parent_id=' + parent_id + ']').each(function (i, selected) {
            $(this).prop('selected', false).click();
        });
    });

    $('#filter_list_dropdwn option:selected').live('click', function () {
        selected = $(this);
        var parent_id = $(selected).attr("value");
        $('#filter_list_dropdwn option[parent_id=' + parent_id + ']').each(function (i, selected) {
            $(this).prop('selected', true).click();
        });
    });

这是上述功能的小提琴:http : //jsfiddle.net/NEXv3/

现在,我想在chzn-select-deselect选项中应用相同的内容因此,我修改了脚本,如下所示:

$('#filter_list_dropdwn option:not(:selected)').live('click', function () {
    unselected = $(this);

    var parent_id = $(unselected).attr("value");
    $('#filter_list_dropdwn option[parent_id=' + parent_id + ']').each(function (i, selected) {
        $(this).attr('selected', false).chosen();
    });
});

$('#filter_list_dropdwn option:selected').live('click', function () {
    selected = $(this);
    var parent_id = $(selected).attr("value");
    $('#filter_list_dropdwn option[parent_id=' + parent_id + ']').each(function (i, selected) {
        $(this).attr('selected', true).chosen();
    });
});

但是它没有按预期工作。谁能建议我在chzn-select-deselect下拉列表中应用相同的自动多选选项出了什么问题?

布鲁尔

快速浏览作者网站时,选择更改时,您将看到以下事件:

$("#form_field").chosen().change( … );

要更新选择下拉列表,您必须执行以下操作:

$("#form_field").trigger("chosen:updated");

现在,您的代码必须从头开始重写:

$('#filter_list_dropdwn').chosen(); // to apply the plugin

$("#filter_list_dropdwn").chosen().change(function(e, option){
    // when changing, option will contain {selected: "value"} or {deselected: "value"}
    var selected = option.selected;
    var deselected = option.deselected;

    if (selected !== undefined) {
        // if we have selected a new option
        $('#filter_list_dropdwn option[data-parent_id=' + selected + ']').each(function () {
            $(this).prop('selected', true);
        });
    } else if(deselected !== undefined) {
        // if we have deselected an option
        $('#filter_list_dropdwn option[data-parent_id=' + deselected + ']').each(function () {
            $(this).prop('selected', false);
        });
    }
    // redraw the "chosen select" when all changes have been made to the real one
    $("#filter_list_dropdwn").trigger("chosen:updated");
});

演示jsFiddle

编辑:

代码可以短得多:

$("#filter_list_dropdwn").chosen().change(function(e, option){
    var parent_id = option.selected !== undefined ? option.selected : option.deselected;

    $('#filter_list_dropdwn option[data-parent_id=' + parent_id + ']').each(function () {
        $(this).prop('selected', option.selected !== undefined ? true : false);
    });

    $("#filter_list_dropdwn").trigger("chosen:updated");
});

演示jsFiddle

编辑#2:

递归实现:

最终演示jsFiddle

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何自动选择多选框chzn-select-deselect?

来自分类Dev

如何使Slicer成为多重选择而不是多重DEselect?

来自分类Dev

react-select:多选时如何在选择一个值后保持菜单关闭?

来自分类Dev

Select2 多选框不起作用

来自分类Dev

如何使用select选择?

来自分类Dev

在<select>中取消选择顶部选项-引导多选

来自分类Dev

在angular-ui-select多选模式中禁用选择的选项

来自分类Dev

jQuery:chzn-select的验证消息位置

来自分类Dev

Handle deselect row in table view

来自分类Dev

如何以编程方式在select2多选择下拉菜单中添加其他选择,而不会丢失现有的选定项目

来自分类Dev

如何创建单击时提交的多选<select>元素

来自分类Dev

select2 多选项全选框给出了一个类型错误

来自分类Dev

如何防止select标签自动选择第一个选项?

来自分类Dev

Deselect Search Box Glow Effect As User Types

来自分类Dev

React Native Picker Select:如何自动选择一个项目,但仍然能够选择其他项目?

来自分类Dev

如何基于选择的其他<select>选项禁用<select>选项?

来自分类Dev

角度ui-select多选:从控制器选择某些项时下拉列表未更新

来自分类Dev

select2基于先前选择的多选过滤器选项

来自分类Dev

SELECT不选择

来自分类Dev

在SELECT中选择GROUP BY

来自分类Dev

多选框选择列表问题

来自分类Dev

自动选择不适用于select2的augularjs

来自分类Dev

如何选择f.select导轨

来自分类Dev

如何编写选择标签形式mybatis select

来自分类Dev

如何检查是否选择了v-select

来自分类Dev

如何使用<content select =“”>选择嵌套元素

来自分类Dev

使select2多选不换行

来自分类Dev

启用select2多选搜索框

来自分类Dev

select2 多选默认项

Related 相关文章

热门标签

归档