jQuery 自动完成,将成功数据传递给 select 方法
jQuery Autocomplete, passing success data to the select method
我有 json 具有某些属性的响应。我为列表创建了一个数组。当我单击列表项时,一些输入将由项目 ID 填充。
为此,我正在考虑将完整的数据对象传递给 select 方法,然后如果单击列表中的某些项目,我将在数据对象中搜索 id,如果找到,我将打印它们所有的输入。
但是我无法成功将 fullObj 数据传递给 select 方法。它 returns 未定义错误。
这是我的代码:
$( "#musteriId" ).autocomplete({
source: function( request, response ) {
$.ajax({
url : '/musteri-bul',
dataType: "json",
data: {
name_startsWith: request.term,
},
success: function( data ) {
//console.log(data);
var arr = [];
var i = 0;
var fullObj = data;
$.each(data, function(index, value){
console.log(index);
var obj = {
label: index
};
arr[i] = obj;
i++;
});
response(arr, fullObj);
}
});
},
minLength: 3,
select: function(event, ui ) {
console.log(fullObj);
},
});
首先,进行 ajax
调用,然后,在成功回调时,使用现有数据开始 autocomplete
:
$.ajax({
url : '/musteri-bul',
dataType: "json",
data: {
name_startsWith: request.term,
},
success: function( data ) {
//console.log(data);
var arr = [];
var i = 0;
var fullObj = data;
$.each(data, function(index, value){
console.log(index);
var obj = {
label: index
};
arr[i] = obj;
i++;
});
$( "#musteriId" ).autocomplete({
source: arr,
minLength: 3,
select: function(event, ui) {
console.log(fullObj);
},
});
}
});
我已经解决了。我只是向 obj 添加了一些属性然后传递。
$( "#musteriId" ).autocomplete({
source: function( request, response ) {
$.ajax({
url : '/musteri-bul',
dataType: "json",
data: {
name_startsWith: request.term,
},
success: function( data ) {
var arr = [];
var i = 0;
var fullObj = data;
$.each(data, function(index, value){
$.each(value, function(idx, v){
var obj = {
label: idx,
value: v,
phone: 12313
};
if(idx == "isim"){
arr[i] = obj;
i++;
}
});
});
response(arr, fullObj);
}
});
},
minLength: 3,
select: function(event, ui ) {
console.log(ui);
},
});
我有 json 具有某些属性的响应。我为列表创建了一个数组。当我单击列表项时,一些输入将由项目 ID 填充。
为此,我正在考虑将完整的数据对象传递给 select 方法,然后如果单击列表中的某些项目,我将在数据对象中搜索 id,如果找到,我将打印它们所有的输入。 但是我无法成功将 fullObj 数据传递给 select 方法。它 returns 未定义错误。 这是我的代码:
$( "#musteriId" ).autocomplete({
source: function( request, response ) {
$.ajax({
url : '/musteri-bul',
dataType: "json",
data: {
name_startsWith: request.term,
},
success: function( data ) {
//console.log(data);
var arr = [];
var i = 0;
var fullObj = data;
$.each(data, function(index, value){
console.log(index);
var obj = {
label: index
};
arr[i] = obj;
i++;
});
response(arr, fullObj);
}
});
},
minLength: 3,
select: function(event, ui ) {
console.log(fullObj);
},
});
首先,进行 ajax
调用,然后,在成功回调时,使用现有数据开始 autocomplete
:
$.ajax({
url : '/musteri-bul',
dataType: "json",
data: {
name_startsWith: request.term,
},
success: function( data ) {
//console.log(data);
var arr = [];
var i = 0;
var fullObj = data;
$.each(data, function(index, value){
console.log(index);
var obj = {
label: index
};
arr[i] = obj;
i++;
});
$( "#musteriId" ).autocomplete({
source: arr,
minLength: 3,
select: function(event, ui) {
console.log(fullObj);
},
});
}
});
我已经解决了。我只是向 obj 添加了一些属性然后传递。
$( "#musteriId" ).autocomplete({
source: function( request, response ) {
$.ajax({
url : '/musteri-bul',
dataType: "json",
data: {
name_startsWith: request.term,
},
success: function( data ) {
var arr = [];
var i = 0;
var fullObj = data;
$.each(data, function(index, value){
$.each(value, function(idx, v){
var obj = {
label: idx,
value: v,
phone: 12313
};
if(idx == "isim"){
arr[i] = obj;
i++;
}
});
});
response(arr, fullObj);
}
});
},
minLength: 3,
select: function(event, ui ) {
console.log(ui);
},
});