0

我想获取所有被选中和启用的复选框的 ID,即那些被禁用和选中的复选框不应该被计算在内。

这是我的代码:-

var widgets_list = [];
$("#dialog-form input:checkbox:checked").map(function(){
    widgets_list.push($(this).attr('id'));
});

当前代码添加了我不想要的被禁用和选中的复选框。如何添加仅考虑已启用复选框的功能。

4

4 回答 4

4

尝试:

var widgets_list = $("#dialog-form input:checkbox:checked").map(function(){
    if(!this.disabled)
       return this.id;
}).get();

或者

var widgets_list = $("input:checkbox:checked:not(:disabled)").map(function(){
       return this.id;
}).get();

演示

在这种情况下,map 用于将一个集合转换为另一个集合,将复选框转换为 id 数组,因此您可以避免通常使用循环 (.each) 进行的推送

于 2013-10-23T04:21:37.290 回答
2

像这样试试

$("#dialog-form input:checkbox:checked").not(":disabled").map(function(){
    widgets_list.push($(this).attr('id'));
});

JSFiddle

你需要知道的是.not():disabled伪选择器。

于 2013-10-23T04:22:27.457 回答
0

您还可以使用:enabled

$("#dialog-form input:checkbox:checked:enabled").map(function(){
    widgets_list.push($(this).attr('id'));
});

演示

于 2013-10-23T04:47:37.970 回答
0

这很简单。只需添加enabled.Something like this。

var widgets_list = [];
$("#dialog-form input:checkbox:checked:enabled").map(function(){
widgets_list.push($(this).attr('id'));
});
于 2013-10-23T04:50:57.223 回答