Javascript JQuery-基于选择列表值选中复选框

Javascript JQuery-基于选择列表值选中复选框,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我对jquery非常非常陌生。我试图做一些对这里的大多数大师来说似乎最基本的事情,但我想我已经搞乱它太久了,我一定忽略了一些非常简单的事情 我总共有85个复选框,需要根据选择列表中选择的值进行检查。选择列表和复选框都是通过ASP页面/数据库查询动态创建的 链接到小提琴: HTML: var filter=$this.data'filter';行试图从select元素而不是select option元素获取数据筛选器值。以下是如何获取选择选项的数据过滤器: var filter = $('opti

我对jquery非常非常陌生。我试图做一些对这里的大多数大师来说似乎最基本的事情,但我想我已经搞乱它太久了,我一定忽略了一些非常简单的事情

我总共有85个复选框,需要根据选择列表中选择的值进行检查。选择列表和复选框都是通过ASP页面/数据库查询动态创建的

链接到小提琴:

HTML:

var filter=$this.data'filter';行试图从select元素而不是select option元素获取数据筛选器值。以下是如何获取选择选项的数据过滤器:

var filter = $('option:selected', this).data('filter');
更新小提琴:

fiddle中还有一些其他的小错误,它们也被修复了

var filter=$this.data'filter';行试图从select元素而不是select option元素获取数据筛选器值。以下是如何获取选择选项的数据过滤器:

var filter = $('option:selected', this).data('filter');
更新小提琴:


fiddle中还有几个其他的小错误,它们也已修复

您的jQuery需要看起来更像这样:

$(function () {
    $('#roleID').on('change', function (e) {

        var filter = $(this).val();

        $('input[type="checkbox"]').removeAttr('checked');
        $('input[type="checkbox"][data-tags*="'+filter+'"]').attr('checked','checked');

    });
});
这是创建该功能的一种非常简单的方法。您可以在此处查看小提琴:


您的jQuery需要看起来更像这样:

$(function () {
    $('#roleID').on('change', function (e) {

        var filter = $(this).val();

        $('input[type="checkbox"]').removeAttr('checked');
        $('input[type="checkbox"][data-tags*="'+filter+'"]').attr('checked','checked');

    });
});
这是创建该功能的一种非常简单的方法。您可以在此处查看小提琴:


根据要检查的值,此设置中存在错误的空间。我使用CSS3选择器[attr*=value],因为我认为这对于新手来说要容易得多。但是,如果要检查更复杂的值,可能需要使用indexOf或类似的方法。祝你好运,我需要改变一下。stackoverflow也是新手,所以我不知道如何跟进。我想我需要稍微改变我正在做的事情,因为我需要有一个加载默认值复选框。我有点让它在这个小提琴中工作,但是复选框没有保持选中状态。加载默认值复选框应该做什么?我注意到你忘了在roleID周围加引号。var filter=$'roleID'.val;基本上,只有选中loadDEfaults复选框,才会选中相应的选项。这就是我现在使用的:。此设置中存在错误的空间,具体取决于您正在检查的值。我使用CSS3选择器[attr*=value],因为我认为这对于新手来说要容易得多。但是,如果要检查更复杂的值,可能需要使用indexOf或类似的方法。祝你好运,我需要改变一下。stackoverflow也是新手,所以我不知道如何跟进。我想我需要稍微改变我正在做的事情,因为我需要有一个加载默认值复选框。我有点让它在这个小提琴中工作,但是复选框没有保持选中状态。加载默认值复选框应该做什么?我注意到你忘了在roleID周围加引号。var filter=$'roleID'.val;基本上,只有选中loadDEfaults复选框,才会选中相应的选项。这就是我现在正在玩的:。这个方法的问题是,如果他在检查300之后再检查200,那么中间的两个将不会被选中。我刚把你的提琴更新了一下。我还将HTML数据过滤器选项更改为不包含引号。因为这些都是数字,所以它们不是必需的。同意,我试图让它接近OP的小提琴。这种方法的问题是,如果他在检查300之后再检查200,那么中间的两个不会被选中。我刚把你的提琴更新了一下。我还将HTML数据过滤器选项更改为不包含引号。因为这些都是数字,所以它们不是真的必要。同意,我试图让它接近OP的小提琴。我建议不要在数据过滤器选项周围使用引号,因为你混淆了几个括号。我建议不要在数据过滤器选项周围使用引号,因为你混淆了几个括号。