获取未禁用的复选框的ID

时间:2013-10-23 04:19:33

标签: jquery

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

这是我的代码: -

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

当前代码添加了禁用和检查的复选框,这是我不想要的。如何添加仅考虑启用的复选框的功能。

4 个答案:

答案 0 :(得分:3)

尝试:

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();

<强> Demo

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

答案 1 :(得分:2)

试试这个

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

JSFiddle

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

答案 2 :(得分:0)

您也可以使用:enabled

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

DEMO

答案 3 :(得分:0)

这很简单。只需添加enabled。就像这样。

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