Jquery自动完成“搜索”方法

时间:2011-01-23 21:47:01

标签: jquery jquery-ui

我正在使用Jquery UI自动完成,这是下面的代码

var opt_source = {...}
var options = {
            minLength: 0,
            source: opt_source,
            search: "aPreDefinedString"
        };
$(".searchable_input").autocomplete(options);

我的understanding是它现在应该搜索aPreDefinedString;这不会发生,而是在本地搜索userInput。有人可以指出我哪里出错吗?

3 个答案:

答案 0 :(得分:7)

好的,这就是我必须让它发挥作用的方式

var opt_source = {..};

var options = {
            minLength: 0,
            source: function(request, response){
                response(opt_source);
            }
        };
$(".searchable_input").autocomplete(options);

这似乎超越了内置搜索(我希望它们在将来的版本中不会破坏它)

来自Jquery UI文档

第三种变体,即回调,提供了最大的灵活性,可用于将任何数据源连接到自动完成。回调有两个参数:

一个请求对象,具有一个名为“term”的属性,它引用文本输入中当前的值。例如,当用户在城市字段中输入“new yo”时,自动完成术语将等于“new yo”。 一个响应回调,它要求一个参数包含要向用户建议的数据。

此数据应根据提供的术语进行过滤,并且可以采用上述任何简单本地数据格式(String-Array或带有标签/值/两者属性的Object-Array)。在提供自定义源回调以处理请求期间的错误时,这很重要。即使遇到错误,也必须始终调用响应回调。这可确保窗口小部件始终具有正确的状态

答案 1 :(得分:6)

我认为您混淆了autocomplete窗口小部件上的search eventsearch method。您可以为search对象(您正在做的)中的options 事件指定一个事件处理程序,用于初始化窗口小部件。

您调用search 方法的方式如下:

$(".searchable_input").autocomplete( "search" , "aPreDefinedString" );

这将手动搜索自动完成。

答案 2 :(得分:0)

我的代码是这样的,它可以工作。

var availableTags = ['aa','bb','cc'];

$( "#filterinput" ).autocomplete({
                      source: availableTags,
                      autoFocus: true,
                    });

$( "#filterinput" ).on( "autocompletesearch", function( event, ui ) {
                      console.log($(this).val());
                    } );
相关问题