2014-04-29 5 views
0

드롭 다운 목록의 검색 상자에있는 텍스트에서 적어도 한 단어를 포함하는 항목을 반환하는 방법이 있습니까?DropDownlist 검색/자동 완성

아약스 튜토리얼이 많이 있지만 검색된 텍스트 전체를 포함하는 항목을 반환합니다.

// Initialize ajax autocomplete: 
$('#autocomplete-ajax').autocomplete({ 
    // serviceUrl: '/autosuggest/service/url', 
    lookup: countriesArray, 
    lookupFilter: function(suggestion, originalQuery, queryLowerCase) { 
     var re = new RegExp('\\b' + $.Autocomplete.utils.escapeRegExChars(queryLowerCase), 'gi'); 
     return re.test(suggestion.value); 
    }, 
    onSelect: function(suggestion) { 
     $('#selction-ajax').html('You selected: ' + suggestion.value + ', ' + suggestion.data); 
    }, 
    onHint: function (hint) { 
     $('#autocomplete-ajax-x').val(hint); 
    }, 
    onInvalidateSelection: function() { 
     $('#selction-ajax').html('You selected: none'); 
    } 
}); 
+0

지금까지 해보신 점은 무엇인가요? – urbz

+0

@GSDa 도움을 제공하기 위해 코드를 보여줄 수 있습니까? 우리가 무엇을했는지, 아니면 적어도 시도하려고하는지 모를 경우 어떻게 도와 줄 수 있습니까? –

+0

@urbz 게시물을 업데이트했습니다! – GSDa

답변

0

당신은 내 어느 곳에서나 전체 단어를 검색하기 위해 정규식을 변경할 수 있습니다 : 지금까지 내가 JQUERY Autocompete

을 사용하고

나는 내가 원하는 것을 달성 할 수 있도록 정규식을 변경해야 이 같은 제안 : 당신이 단어의 일부만 검색하기를 원한다면

var re = new RegExp('\\b' + $.Autocomplete.utils.escapeRegExChars(queryLowerCase) + '\\b', 'gi'); 

그렇지 않으면,이 같은, 같이 IndexOf를 변경할 수 있습니다 :

lookupFilter: function(suggestion, originalQuery, queryLowerCase) { 
    return re.test(suggestion.value.indexOf(queryLowerCase) != -1); 
}, 
+0

답장을 보내 주셔서 감사합니다. 퍼지 라이브러리를 발견했습니다. 지금 FuzzySet.js를 사용하고 있는데 검색이 더 효율적입니다. – GSDa