從他們的幫助文檔。
回調
使用可選的回調函數自動完成只會執行回調中發現的代碼。點擊事件對象被傳遞到回調函數中,用於訪問選擇中包含的信息。這裏有一個用例:
$("#searchField").autocomplete("update", {
source: [ "foo", "bar", "baz" ],
minLength: 3,
callback: function(e) {
var $a = $(e.currentTarget); // access the selected item
$('#searchField').val($a.text()); // place the value of the selection into the search box
$("#searchField").autocomplete('clear'); // clear the listview
}
});
OPTION 1 本節將允許您訪問文本字段
$('#searchField').val($a.text()); // or $a.value()
所以這樣做的回調事件
window.location.replace("http://stackoverflow.com?target=" + $a.text());
內選項2 看起來他們期望結果設置爲這種格式(文字&值),所以如果你需要其他的值,你需要求助於的jQuery自動完成(這部分是基於其)
$('#some_id').autocomplete({
source: function (request, response) {
$.ajax({
url: 'some_url',
dataType: "json",
data: {
filter: request.term
},
success: function (data) {
response($.map(eval(data), function (item) {
return {
label: item.Text,
value: item.Value,
extra_value: item.Extra_Value
}
}));
}
})
},
maxLength: 2,
select: function (event, ui) {
$("#Some_id2").attr('value', ui.item.extra_value);
}
});
UPDATE又名OPTION 3 從他們的演示代碼,如果你只是想要文本值,並且不需要ID(就像你的情況),只需改變你的源格式。而不是從服務器返回JSON結果返回一個字符串數組,或JSON結果轉換爲字符串數組,你喜歡的(他們的演示頁面上從工作示例代碼)
其以往的味道
var availableTags = ['24', 'about me',... , 'XUIJS'];
$("#searchField").autocomplete({
target: $('#suggestions'),
source: availableTags,
link: 'target.html?term=',
minLength: 1,
matchFromStart: false
});
Q羅漢我得到$ a.text()值爲[對象對象] – PPD
好的,你需要做的是。轉到您的頁面並打開開發人員工具,在Google Chrome瀏覽器中按f12。並在回調事件中添加一個斷點,然後輸入一個值並檢查生成的對象以查看是否可以查找存儲文本值的變量。或者,查看此頁面的源代碼。 如果你只是想要文本值,爲什麼還要將值傳遞給前端。 http://andymatthews.net/code/autocomplete/array.html –
@ Rohan感謝您的建議。使用$ a.text()我得到了價值。再次感謝。 – PPD