Jquery自动完成"搜索"方法

Mr *_*yde 3 jquery jquery-ui

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

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

我的 理解 是它现在应该搜索aPreDefinedString; 这不会发生,而是搜索本地源userInput.有人能指出我哪里错了吗?

Mr *_*yde 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).在提供自定义源回调以处理请求期间的错误时,这很重要.即使遇到错误,也必须始终调用响应回调.这可确保窗口小部件始终具有正确的状态


And*_*ker 6

我认为你在窗口小部件上混合了search 事件search 方法autocomplete.您可以为用于初始化窗口小部件的对象(您正在执行的操作)中的search 事件指定事件处理程序options.

你调用这个search 方法的方式是这样的:

$(".searchable_input").autocomplete( "search" , "aPreDefinedString" );
Run Code Online (Sandbox Code Playgroud)

这将手动搜索自动完成.