Javascript 如何在jquery自动完成中使用名称和数字进行搜索?

Javascript 如何在jquery自动完成中使用名称和数字进行搜索?,javascript,jquery,jquery-ui,jquery-ui-autocomplete,Javascript,Jquery,Jquery Ui,Jquery Ui Autocomplete,我需要在jquery自动完成中使用名称或数字进行搜索 我试过这个: HTML: 从上面的数组中,我需要同时使用姓名和电话号码进行搜索,但现在只有电话号码搜索起作用,姓名搜索不起作用 任何人都可以帮助我。您可能应该尝试使用ajax选项,并在服务器端进行搜索 $('#autocomplete').autocomplete({ serviceUrl: '/autocomplete/countries', onSelect: function (suggestion) {

我需要在jquery自动完成中使用名称或数字进行搜索

我试过这个:

HTML:

从上面的数组中,我需要同时使用姓名和电话号码进行搜索,但现在只有电话号码搜索起作用,姓名搜索不起作用


任何人都可以帮助我。

您可能应该尝试使用ajax选项,并在服务器端进行搜索

$('#autocomplete').autocomplete({
    serviceUrl: '/autocomplete/countries',
    onSelect: function (suggestion) {
        alert('You selected: ' + suggestion.value + ', ' + suggestion.data);
    }
});

您可能应该尝试使用ajax选项,并在服务器端进行搜索

$('#autocomplete').autocomplete({
    serviceUrl: '/autocomplete/countries',
    onSelect: function (suggestion) {
        alert('You selected: ' + suggestion.value + ', ' + suggestion.data);
    }
});

autocomplete将回调函数作为具有以下参数的

一个
请求
对象,具有一个术语属性,它引用文本输入中当前的值

一个
响应
回调,它需要一个参数:向用户建议的数据。该数据应根据提供的术语进行过滤,并且可以采用上述任何格式,用于简单的本地数据

查看此链接

你能试试下面的代码吗

var数组=[{name:“xxx”,phone_number:“9997515744”},{name:“abc”,phone_number:“9619054073”},{name:“asd”,phone_number:“9323135708”}];
//键入的数据位于request.term中
函数multipleFieldMatch(请求、响应){
功能isMatch(s){
返回s.toLowerCase().indexOf(request.term.toLowerCase())!=-1;
}
变量i、len、obj、totalMatches=[];
len=数组长度;
if(request.term==“”){
答复([]);
返回;
}

for(i=0;iautocomplete将回调函数作为
,它具有以下参数

一个
请求
对象,具有一个术语属性,它引用文本输入中当前的值

一个
响应
回调,它需要一个参数:向用户建议的数据。应根据提供的术语对该数据进行过滤,并且对于简单的本地数据,可以采用上述任何格式

查看此链接

你能试试下面的代码吗

var数组=[{name:“xxx”,phone_number:“9997515744”},{name:“abc”,phone_number:“9619054073”},{name:“asd”,phone_number:“9323135708”}];
//键入的数据位于request.term中
函数multipleFieldMatch(请求、响应){
功能isMatch(s){
返回s.toLowerCase().indexOf(request.term.toLowerCase())!=-1;
}
变量i、len、obj、totalMatches=[];
len=数组长度;
if(request.term==“”){
答复([]);
返回;
}

对于API文档中的(i=0;i),我建议使用
source
作为回调函数

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

一个
请求
对象,具有一个
术语
属性,该属性引用当前文本输入中的值。例如,如果用户在城市字段中输入
“new yo”
,则自动完成术语将等于
“new yo”

响应
回调,它需要一个参数:向用户建议的数据。应根据提供的术语筛选此数据,并且对于简单的本地数据,可以采用上述任何格式。在提供自定义源回调以处理请求期间的错误时,这一点非常重要。您必须始终调用
response
回调,即使遇到错误。这确保小部件始终具有正确的状态

此外,源数组需要包含
标签
,它可以包含更多数据,但这两个是必须的。有关自定义数据的详细信息,请参阅:

我的建议如下:

JavaScript

var myData = [{
  label: "xxx",
  value: "9997515744"
}, {
  label: "abc",
  value: "9619054073"
}, {
  label: "asd",
  value: "9323135708"
}];
$(function() {
  $("#plugins").autocomplete({
    source: function(req, resp) {
      var results = [];
      $.each(myData, function(k, v) {
        // Make a pass for names
        if (v.label.indexOf(req.term) != -1) {
          results.push(v);
          return;
        }
        // Make a pass for phone
        if (v.value.indexOf(req.term) != -1) {
          results.push(v);
          return;
        }
      });
      resp(results);
    }
  });
});

工作示例:

从API文档中,我建议使用
源代码作为回调函数

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

一个
请求
对象,具有一个
术语
属性,该属性引用当前文本输入中的值。例如,如果用户在城市字段中输入
“new yo”
,则自动完成术语将等于
“new yo”

响应
回调,它需要一个参数:向用户建议的数据。应根据提供的术语筛选此数据,并且对于简单的本地数据,可以采用上述任何格式。在提供自定义源回调以处理请求期间的错误时,这一点非常重要。您必须始终调用
response
回调,即使遇到错误。这确保小部件始终具有正确的状态

此外,源数组需要包含
标签
,它可以包含更多数据,但这两个是必须的。有关自定义数据的详细信息,请参阅:

我的建议如下:

JavaScript

var myData = [{
  label: "xxx",
  value: "9997515744"
}, {
  label: "abc",
  value: "9619054073"
}, {
  label: "asd",
  value: "9323135708"
}];
$(function() {
  $("#plugins").autocomplete({
    source: function(req, resp) {
      var results = [];
      $.each(myData, function(k, v) {
        // Make a pass for names
        if (v.label.indexOf(req.term) != -1) {
          results.push(v);
          return;
        }
        // Make a pass for phone
        if (v.value.indexOf(req.term) != -1) {
          results.push(v);
          return;
        }
      });
      resp(results);
    }
  });
});

工作示例:

仅供参考,
请求。除非将
minLength
设置为0,否则术语
永远不会是
minLength
的默认值为1。此外,如果行数很重要,您可以将
换成jQuery
$的
循环。每个()
。是的,你对minlength部分的看法是正确的,我只是将支票添加为默认支票。这很好,但我需要在下拉列表中显示姓名和电话号码,如果姓名为空,需要显示未命名,我会尝试解决,如果你有任何想法,请分享。仅供参考,
请求。term
永远不会
>“
除非
minLength
设置为0。
minLength
的默认值为1。此外,如果行数很重要,您可以将
换成jQuery
$的
循环。每个