Получить идентификаторы флажков, которые не отключены

0

Я хочу получить идентификаторы всех флажков, которые были проверены и включены, т.е. Те флажки, которые отключены и отмечены, не должны учитываться.

Вот мой код: -

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

В текущем коде добавляются флажки, которые отключены и отмечены, что я не хочу. Как добавить функциональность, которая будет учитывать только активированные флажки.

  • 0
    var widgets_list = $.map($("#dialog-form input:checkbox:checked:not(:disabled), function(el) {return el.id})
Теги:

4 ответа

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

демонстрация

map используется для преобразования одной коллекции в другую коллекцию в этом случае с помощью флажков в массив идентификаторов, поэтому вы можете избежать нажатия, которое вы обычно делаете с помощью цикла (.each)

  • 1
    +1 Мне нравится элегантность в твоем коде. Люблю следовать вашему стилю кодирования :)
2

Попробуйте это

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

JSFiddle

Вам нужно знать: .not() и :disabled псевдоселектор.

0

Это довольно просто. Просто добавьте enabled Что-то вроде этого.

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

Вы также можете использовать : enabled,

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

DEMO

Ещё вопросы

Сообщество Overcoder
Наверх
Меню