我想获取所有选中和启用的复选框的ID,即那些被禁用和检查的复选框不应计算在内。
这是我的代码: -
var widgets_list = [];
$("#dialog-form input:checkbox:checked").map(function(){
widgets_list.push($(this).attr('id'));
});
当前代码添加了禁用和检查的复选框,这是我不想要的。如何添加仅考虑启用的复选框的功能。
答案 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'));
});
答案 2 :(得分:0)
您也可以使用:enabled,
$("#dialog-form input:checkbox:checked:enabled").map(function(){
widgets_list.push($(this).attr('id'));
});
答案 3 :(得分:0)
这很简单。只需添加enabled
。就像这样。
var widgets_list = [];
$("#dialog-form input:checkbox:checked:enabled").map(function(){
widgets_list.push($(this).attr('id'));
});