Javascript 如何在jquery自动完成中使用名称和数字进行搜索?
我需要在jquery自动完成中使用名称或数字进行搜索 我试过这个: HTML: 从上面的数组中,我需要同时使用姓名和电话号码进行搜索,但现在只有电话号码搜索起作用,姓名搜索不起作用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) {
任何人都可以帮助我。您可能应该尝试使用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$的循环。每个