如何取消选中所有复选框,具体取决于下拉值

时间:2015-01-23 09:25:06

标签: jquery

我有一个组合框,在更改下拉列表时如何取消选中所有复选框 具有不同于所选状态的值的其他值

http://jsfiddle.net/cdkLkcdk/11/

我无法在下拉变更中保持这个条件

$(document).on('change', 'select#filterstatus', function (event) {


    var value = $(this).val();
    $(".Table_fluid").show();
    $(".Table_fluid:not(:contains(" + value + "))").hide();



});

场景:

点击Mark All CheckBox(在顶部)并输入状态并点击删除按钮 它还显示其他ID

任何人都可以告诉我如何解决这个问题。

3 个答案:

答案 0 :(得分:1)

只需在.find("[type=checkbox]").prop("checked", false);之后添加.hide()

看到它正常工作here

var value = $(this).val(),
    selectAll = $("#selectall").prop("checked"); // select all checked?

$(".Table_fluid")
    .show()
    .find("[type=checkbox]")
    .prop("checked", selectAll); //  tick checkbox on showing

$(".Table_fluid:not(:contains(" + value + "))")
    .hide()
    .find("[type=checkbox]")
    .prop("checked", false);  // uncheck checkbox on hiding

答案 1 :(得分:0)

在具有状态值的标签(表内)中,添加以下类label-status

$.each($checked, function (i, e) {
    var status = $(e).parent().parent().find('.label-status').text();
    if ($(e).attr("id") != 'selectall' && status == $('#filterstatus').val()) {
        ids.push($(e).attr("id"))
    }
});

编辑JSFiddle

答案 2 :(得分:0)

可以检查项目是否可见。

if ($(e).attr("id") != 'selectall' && $(e).is(":visible")) {
    ids.push($(e).attr("id"))
}