Точно совпадающий вариант и optgroup

У меня возникла проблема со следующим скриптом, когда опции выбора становятся длинными:

Решение с несколькими вариантами http://jsfiddle.net/hsQjh/5/

Длинные варианты с вопросом: http://jsfiddle.net/hsQjh/6/

Моя первая опция выбора включает до 40+ опций, таким образом, вторая опция выбора также будет иметь до 40+ оптгрупп, когда я выбрал опцию '2' в первом поле, второе поле заполняется всей оптгруппой, которая является нумерация начинается с 2, то есть заполняется группа "2", "20" - "29", то же самое происходит и с другими опциями, которые были выбраны.

Может ли оно совпадать с "идентификаторами" точно между значением опции и меткой optgroup?

function filterActivity(e){
     var ids = $('#filterActivity + div input:checked').map(function(i) {
        return $(this).val().replace(/ .*/, '');
     }).get(); // Retrieve checked IDs

     $('#filterSubActivity + div div label').each(function() { // Show matching options
        $(this).toggle($.inArray($('input', this).val()[0], ids) > -1);
     });

     $('#filterSubActivity + div label.optGroup').each(function() { // Show matching groups
        $(this).toggle($(this).next().find('label:visible').length > 0);
     });
}

Благодарю.

1 ответ

Решение

Используйте фильтр на основе регулярных выражений

$('#filterSubActivity + div div label').each(function() { // Show matching options
    $(this).toggle($.inArray($('input', this).val().match(/^\d+/)[0], ids) > -1);
});

Демо: скрипка

Другие вопросы по тегам