Javascript 在下拉菜单jquery autocomplete中显示两个值
我正在使用jqueryautocomplete制作一个搜索功能,其中数据来自json。 搜索应该显示一个人的全名,但由于名字和姓氏在json的两个不同字段中,我发现很难在自动完成下拉列表中同时显示名字和姓氏 当搜索其中一个值并在下拉列表中显示全名时,是否有可能将这两个值连接在一起 JSON示例:Javascript 在下拉菜单jquery autocomplete中显示两个值,javascript,jquery,jquery-ui,jquery-ui-autocomplete,Javascript,Jquery,Jquery Ui,Jquery Ui Autocomplete,我正在使用jqueryautocomplete制作一个搜索功能,其中数据来自json。 搜索应该显示一个人的全名,但由于名字和姓氏在json的两个不同字段中,我发现很难在自动完成下拉列表中同时显示名字和姓氏 当搜索其中一个值并在下拉列表中显示全名时,是否有可能将这两个值连接在一起 JSON示例: { "GetContactsResult": [ { "FirstName": "John", "LastName": "Doe", "L
{
"GetContactsResult": [
{
"FirstName": "John",
"LastName": "Doe",
"LocalNumber": "555000",
"MobileNumber": "555000"
},
{
"FirstName": "Jane",
"LastName": "Doe",
"LocalNumber": "555000",
"MobileNumber": "555000"
}]}
以下是我的代码/html:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#typedText").autocomplete({
source: function ( request, response ) {
$.ajax({
url: "data.json",
dataType: "json",
success: function (data) {
var sData = data.GetContactsResult.filter(function(v) {
var re = new RegExp( request.term, "i" );
return re.test(v.FirstName);
});
response( $.map( sData, function ( item ) {
return {
label: item.FirstName
};
}));
}
});
},
minLength: 2,
});
});
</script>
<meta charset="utf-8">
<title>click function</title>
</head>
<body>
<input id="typedText">
<input type="button" id="getValue" value="Type value">
</body>
</html>
$(文档).ready(函数(){
$(“#typedText”).autocomplete({
来源:功能(请求、响应){
$.ajax({
url:“data.json”,
数据类型:“json”,
成功:功能(数据){
var sData=data.GetContactsResult.filter(函数(v){
var re=新的RegExp(request.term,“i”);
返回重新测试(v.FirstName);
});
响应($.map)(sData、功能(项){
返回{
标签:item.FirstName
};
}));
}
});
},
最小长度:2,
});
});
点击功能
因此,为了更清楚地说明这一点,我试图让“John Doe”显示在自动完成中,而不仅仅是“John”。将完整项对象传递给响应函数 因此,在标签对象中执行以下操作:
label: item.FirstName + " " + item.LastName;
应返回全名。只需执行
标签:item.FirstName+“”+item.LastName代码>谢谢!!!我之前尝试使用以下标签:item.FirstName+“”+label:item.LastName;。但是你知道如果我先键入姓氏是否可能得到相同的结果吗?最后,是的,但你需要在筛选函数中包含另一个条件。请注意,带+|等的搜索值在你的正则表达式测试中会失败,因为它们不会被转义。好的,我一直在尝试向我的筛选函数添加一个条件,但我必须说我不知道放在哪里。关于regex没有逃脱。在第二个条件起作用之前,我需要这样做吗?返回re.test(v.FirstName)| re.test(v.LastName)代码>