【发布时间】:2010-03-16 19:44:18
【问题描述】:
我正在尝试使用来自页面加载时的 ajax 调用的 XML 响应填充变量,以便在 keyup 时我可以过滤该列表而无需重复获取请求(认为非常基本的自动完成)。我遇到的问题似乎可能与变量范围有关,但我对 js/jQuery 相当陌生,所以我不太确定。
以下代码在 key up 上没有做任何事情,向它添加警报告诉我它正在 keyup 上执行 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);
});
}
【问题讨论】:
标签: jquery ajax sharepoint web-services