jquery ui 使用 ajax 自动完成,自定义搜索不起作用

Posted

技术标签:

【中文标题】jquery ui 使用 ajax 自动完成,自定义搜索不起作用【英文标题】:jquery ui autocomplete with ajax with custom search not working 【发布时间】:2017-03-26 11:20:06 【问题描述】:

我的 json 响应是:

["value":"admin@admin.com","value":"customer@customer.com","value":"customer1@customer.com","value":"provider@provider.com"]

我的 jQuery:

$( "#email1" ).autocomplete(
        source: function (request, response) 
                 $.ajax(
                      url: "/useremail",
                      dataType: "json",
                      data: 
                           term: request.term
                      ,
                      success: function (data) 
                          //response(data);
                          console.log(data);
                          var matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( request.term ), "i" );
                          response( $.grep( data, function( item )
                               return matcher.test( item );
                          ));
                      
                 );
        ,
        minLength: 3
);

我无法从我的 json 数据执行自定义搜索这里是执行自定义搜索的文档示例jQuery-ui autocomplete

基本上我的搜索只会显示那些与我的输入字段匹配的电子邮件。如果我只使用响应(数据)它会显示所有结果但不显示搜索。

【问题讨论】:

欢迎来到 Stack Overflow!请查看我们的SO Question Checklist 以帮助您提出一个好问题,从而得到一个好的答案。 【参考方案1】:

请试试这个:

success: function (data) 
          //response(data);
          console.log(data);
          var matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( request.term ), "i");
          var d = $.grep( data, function(item) 
                return matcher.test( item.label || item.value || item );
          );
          response(d);

【讨论】:

你的回答很完美。但是编辑它你在var matcher变量中添加了额外的字符,即')'

以上是关于jquery ui 使用 ajax 自动完成,自定义搜索不起作用的主要内容,如果未能解决你的问题,请参考以下文章

jquery ui 使用 ajax 自动完成,自定义搜索不起作用

Jquery UI 自动完成和 Ajax 倍数从成功返回

jQuery UI Ajax 自动完成区分大小写 ASP.net MVC

jQuery UI 自动完成:中止请求

使用jQuery-UI来实现一个Ajax的自动完成功能(自动填充搜索框的下拉值)

jQuery ui 自动完成在 MVC c# 中不显示任何内容