2015-03-30 4 views
0

У меня есть скрипка.Fuzzy Logic на выбранном выпадающем списке

http://jsfiddle.net/jHvmg/318/

$(document).ready(function() { 
    $('#campaign_list').chosen({ 
     no_results_text: "Oops, nothing found!" 
    }); 
    $('#campaign_list').css({ 
     'width': '100%', 
     'height': '30px', 
     'border-radius': '2px' 
    }); 
    $('#campaign_list_chosen').css({ 
     'width': '100%', 
     'height': '30px', 
     'border-radius': '2px' 
    }); 
    $('#camp_list').chosen({ 
     no_results_text: "Oops, nothing found!" 
    }); 
    $('#camp_list').css({ 
     'width': '100%', 
     'height': '30px', 
     'border-radius': '2px' 
    }); 
    $('#camp_list_chosen').css({ 
     'width': '100%', 
     'height': '30px', 
     'border-radius': '2px' 
    }); 
    $("#campaign_list_chosen").find("input").on('keyup', function() { 
     var final_list = ''; 
     var srch_array = new Array(); 
     var srch_option = new Array(); 
     var list_option = new Array(); 
     var str_srch = $(this).val(); 
     var final_list_option = new Array(); 
     srch_array = str_srch.split(" "); 
     var srch_array_lengh = srch_array.length; 
     $("#campaign_list option").each(function() { 
      list_option.push($(this).val()); 
     }); 
     for (var lo = 0; lo < list_option.length; lo++) { 
      var count_match = 0; 
      for (var sa = 0; sa < srch_array_lengh; sa++) { 
       if (list_option[lo].toLowerCase().indexOf(srch_array[sa]) >= 0) { 
        count_match++; 
       } 
      } 
      if (count_match == srch_array_lengh) { 
       final_list_option.push(list_option[lo]); 
      } 
     } 
     $("#campaign_list_chosen").find("ul").html(''); 
     for (var fo = 0; fo < final_list_option.length; fo++) { 
      final_list = final_list + '<li class="active-result" style="" data-option-array-index="1">' + final_list_option[fo] + '</li>'; 
     } 
     $(".chosen-results").html(final_list); 
    }); 
}); 

Я добавил нечеткую логику на JQuery выпадающего меню ..

Но главная проблема в том, что, если я что-то типа в текстовом поле и выберите из отфильтрованного списка , тогда выбираются все остальные опции.

Однако, если я ничего не набираю и выбираю из drpdown, тогда выбирается значение corressponding.

К примеру типа «нам лагерь» в текстовом поле и выберите вариант Thats показывается ..

вы увидите только вторая варианта выбрана.

Как я могу решить это ..

+0

Считаете ли вы, что константа 'data-option-array-index =" 1 "' может иметь какое-то отношение к ней? –

+0

У меня нет ни малейшего представления ... его просто, что после того, как я фильтрую параметр, всегда выбирается нужная опция – Saswat

ответ

1

Я думаю, что проблемы позиции вы назначаете в петлях

for(var lo = 0; lo < list_option.length; lo++) 

и

for(var sa = 0; sa <srch_array_lengh; sa++) 

Может быть this является то, что вы хотите?

+0

Не об этом .... я не могу выбрать любую опцию из отфильтрованных данных ... ее всегда выбирает второй – Saswat

+0

в моей скрипке пример данных правильно выбран ... проверьте его ... http://jsfiddle.net/jHvmg/322/ –

+0

u уничтожил нечеткую логику .... :( – Saswat

Смежные вопросы