2011-02-11 85 views
0

我有jQuery和自动完成插件设置。自动完成工作正常,我设置的宽度和查找的各种选项都可以。但不起作用的是matchContains选项。根据the doc“比较是否在内部查找(即,”ba“是否匹配”foo bar“)搜索结果。仅在使用缓存时才重要,不要与自动填充混合。但它并没有在搜索结果中寻找内容。例如,“ba”不会找到“foo bar”。jQuery自动完成:matchContains不工作

<script type="text/javascript" src="styles/prosilver/template/jquery.js"></script> 
<script type="text/javascript" src="styles/prosilver/template/jquery.autocomplete.js"></script> 


<script type="text/javascript"> 
// <![CDATA[ 

/* Zeno */ 
function translatestyle(text) 
{ 
    var val = document.getElementById('query').value; 
    var lang = '{S_USER_LANG}'.substring(0,2); 
    var list = "{TRANS_LIST}"; 
    var arr = list.match(val); 
    if (arr == null) 
    { 
     alert('That is not a valid translation term.'); 
    } 
    else 
    { 
     insert_text('[translate='+lang+']'+val+'[/translate]'); 
     document.forms[form_name].elements[text_name].focus(); 
    } 
} 


    var a2; 

    jQuery(function() { 

    var onAutocompleteSelect = function(value, data) { 
     $('#selection').html('<img src="\/global\/flags\/small\/' + data + '.png" alt="" \/> ' + value); 
     alert(data); 
    } 

    var options = { 
     serviceUrl: '/projects/autocomplete/service/autocomplete.ashx', 
     matchContains: true, 
     width: 300, 
     delimiter: /(,|;)\s*/, 
     onSelect: onAutocompleteSelect, 
     deferRequestBy: 0, //miliseconds 
    }; 

    a2 = $('#query').autocomplete({ 
     matchContains: true, 
     width: 300, 
     delimiter: /(,|;)\s*/, 
     lookup: "{TRANS_LIST}".split(',') 
    }); 


    $('#navigation a').each(function() { 
     $(this).click(function(e) { 
     var element = $(this).attr('href'); 
     $('html').animate({ scrollTop: $(element).offset().top }, 300, null, function() { document.location = element; }); 
     e.preventDefault(); 
     }); 
    }); 

    }); 

回答

1

我不熟悉的特定插件,但你可能想尝试切换到JQuery用户界面Autocomplete库。这很好,并且可以按照你想要的方式进行搜索。

0

例子:

source: function (request, response) { // Contains 
    var searchString = request.term, 
     items = []; 

    // OPTIONS 
    // Search for items with "searchString"... 
    // Example: 
    items.push('test 1'); 
    items.push('foo'); 
    items.push('var'); 

    response(items); // Items 
}