我已經找到了自定義返回值的最佳做法是創建解析函數。這使您可以使用返回的JSON執行您想要的操作。在這個示例代碼中,我沒有提到ajax調用,但是如果需要的話,我也可以添加它。 jQuery UI自動完成查找標籤和值實體。您可以根據需要將其中任意一個放入,或者根據需要進行一些自定義操作。
var myStuff = [{
"uid": "123",
"UserName": "xxx"},
{
"uid": "124",
"UserName": "yyy"}];
function imAutocompleteJSONParse(data) {
var rows = [];
var rowData = null;
var dataLength = data.length;
for (var i = 0; i < dataLength; i++) {
rowData = data[i];
rows[i] = {
label: rowData.UserName,
value: rowData.UserName
};
}
return rows;
}
$("#Txt1").autocomplete({
source: function(request, response) {
var rows = imAutocompleteJSONParse(myStuff);
return response(rows);
},
minLength: 2
});
爲了清楚起見,我把這個小提琴頁面,所以你可以看到它的工作:http://jsfiddle.net/MarkSchultheiss/TRKeE/
現在,當我懷疑你想要做一些自定義/不同的東西的結果,我有創建瞭如何使用自定義值工作這一習俗例如:http://jsfiddle.net/MarkSchultheiss/TRKeE/2/
不同的是,我改變了解析功能,並增加了一個新的自動完成選項。
var myStuff = [{
"uid": "123",
"UserName": "xxx"},
{
"uid": "124",
"UserName": "yyy"}];
function imAutocompleteJSONParse(data) {
var rows = [];
var rowData = null;
var dataLength = data.length;
for (var i = 0; i < dataLength; i++) {
rowData = data[i];
rows[i] = {
uid: rowData.uid,
UserName: rowData.UserName,
label: rowData.UserName,
value: rowData.uid
};
}
return rows;
}
$("#Txt1").autocomplete({
source: function(request, response) {
var rows = imAutocompleteJSONParse(myStuff);
return response(rows);
},
select: function(event, ui) {
var hasValue = (ui.item.value != undefined && ui.item.value != "" && ui.item.value != null);
if (hasValue) {
var focusedElement = $(this);
focusedElement.val(ui.item.label);
$('#labelResult').text(ui.item.label);
$('#valueResult').text(ui.item.label);
$('#customResult').text(ui.item.uid + ":" + ui.item.UserName);
return false;
}
else {
return false;
}
},
minLength: 2
});
這個JSON來自ajax調用嗎? –
是它來自ajax調用 –