【问题标题】:jquery ui autocomplete with ajax with custom search not workingjquery ui 使用 ajax 自动完成,自定义搜索不起作用
【发布时间】: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 以帮助您提出一个好问题,从而得到一个好的答案。

标签: javascript jquery json ajax jquery-ui


【解决方案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变量中添加了额外的字符,即')'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-17
相关资源
最近更新 更多