我在自動完成時遇到問題,因爲它只返回一條記錄,而遠程web服務正在返回10條記錄。jquery ui自動完成只返回一個值
想知道你是否可以看看我的代碼,看看我是否做錯了什麼?
接收的數據:
{ 「d」: 「[\」 02102008633 \」,\ 「02102008794 \」,\ 「02102008980 \」,\ 「02102015321 \」,\ 「02102018743 \」, \ 「02102024602 \」,\ 「02102037454 \」,\ 「02102038366 \」,\ 「02102040774 \」,\ 「02102056369 \」]「}
jQuery(txtDestination).autocomplete({
minLength: 2,
source: function (request, response) {
jQuery.ajax({
url: "/SearchService.asmx/GetDestinationAutocompleteValue?" + "accountCode=" + accountCode.toString() + "&criteria=" + jQuery(txtDestination).val().toString(),
data: "{}",
type: "GET",
contentType: "application/json; charset=utf-8",
success: function (data) {
if (data != null && data.hasOwnProperty('d') && eval(data.d) != null) {
var result = new Array(eval(data.d));
response(jQuery.map(result, function (item, ctr) {
return { label: item[ctr], id: item[ctr], value: item[ctr] }
}));
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) { alert(textStatus + " " + errorThrown); }
});
}
});
萬分感謝!
乾杯, 安
JQuery.map的結果是什麼樣的? – Marco 2011-03-02 23:23:25
除了Xavier的正確答案外,請重新閱讀http://jqueryui.com/demos/autocomplete/的「概述」部分,具體來說,你應該總是**調用'response()'(你不需要在你的錯誤處理中這樣做),你應該(如果可能的話)從服務器返回有效的json對象數據,所以你不會被迫像這樣''eval()' – davin 2011-03-02 23:32:30
感謝提示@davin!將嘗試再次審查這個! :) – mallows98 2011-03-02 23:46:06