如何自定义自动完成搜索事件

时间:2012-02-27 18:29:10

标签: javascript jquery jquery-ui

我正在尝试配置自动完成插件,因此它会在搜索时发送一个额外的参数。我查看了autcomplete搜索事件,但没有找到关于这样一个函数需要做什么的文档,以便插件工作。

我尝试将console.log(...)插入搜索事件,但它不会出现在控制台中。

为了澄清,我想修改输入信件时发送到服务器的参数。

到目前为止我的代码是:

$('#contacts').autocomplete({
        source: 'autocompleteContacts',
        focus: function( event, ui ) {
            $( "#contacts" ).val( ui.item.label );
            return false;
        },
        select: function( event, ui ){
            $( "#contacts" ).val( ui.item.label );
            selectedID = ui.item.value;
            return false;
        },
        search: function( event, ui ){
            var str = '';
            for(var attr in event){
                str += attr.toString() + '\n';
            }
            console.log(str);

            var str2 = '';
            for(var attr in ui){
                str2 += attr.toString() + '\n';
            }
            console.log(str2);
        }
    });

但正如我所说,虽然自动完成功能正常,但控制台中没有显示任何内容。

1 个答案:

答案 0 :(得分:3)

我认为您正在寻找的是source选项。您可以指定自己执行搜索的功能:

$("#autocomplete").autocomplete({
    source: function (request, response) {
    /* request.term is the search term, response is a callback function your 
       code must call with the results */
        $.ajax({
            url: "your_source_url",
            dataType: "json",
            data: {
                term: request.term,
                myData: "foobar"
            },
            success: response,
            error: function() {
                response([]);
            }
        });
    }
});

remote with JSONP example是一个很好的起点。