0
我想在頁面加載時使用來自ajax調用的XML響應填充變量,以便在keyup上我可以通過該列表進行過濾,而無需重複獲取請求(認爲非常簡單自動完成)。我遇到的麻煩似乎與變量範圍有關,但我對js/jQuery相當陌生,所以我不太確定。從Sharepoint列表Web服務返回並保存XML對象
以下代碼不會對密鑰進行任何操作,並向它添加警報,告訴我它正在執行關鍵字上的leadResults()
,並且該變量正在返回XML響應對象,但它看起來是空的。奇怪的是,如果我將leadResults()
呼叫轉移到getResults()
函數中,UL就會正確填充結果。
我在這邊撞牆,請幫忙!
var resultsXml;
$(document).ready(function() {
var leadLookupCaml =
"<Query> \
<Where> \
<Eq> \
<FieldRef Name=\"Lead_x0020_Status\"/> \
<Value Type=\"Text\">Active</Value> \
</Eq> \
</Where> \
</Query>"
$().SPServices({
operation: "GetListItems",
webURL: "http://sharepoint/departments/sales",
listName: "Leads",
CAMLQuery: leadLookupCaml,
CAMLRowLimit: 0,
completefunc: getResults
});
})
$("#lead_search").keyup(function(e) {
leadResults();
})
function getResults(xData, status) {
resultsXml = xData;
}
function leadResults() {
xData = resultsXml;
$("#lead_results li").remove();
$(xData.responseXML).find("z\\:row").each(function() {
var selectHtml =
"<li>"
+ "<a href=\"http://sharepoint/departments/sales/Lists/Lead%20Groups/DispForm.aspx?ID=" + $(this).attr("ows_ID") + ">" + $(this).attr("ows_Title")+" : " + $(this).attr("ows_Phone") + "</a>\
</li>";
$("#lead_results").append(selectHtml);
});
}