我试图在页面加载时用来自Ajax调用的XML响应来填充变量,这样在keyup中,我就可以在不进行重复的get请求的情况下过滤该列表(想想非常简单的自动完成)。我遇到的问题似乎可能与变量范围有关,但我对JS/JQuery还比较陌生,所以我不太确定。
下面的代码对key up没有任何作用,向其添加警报会告诉我它正在执行
leadResults()
在keyup上,变量返回一个XML响应对象,但它似乎是空的。奇怪的是如果我移动
引线结果()
打电话到
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);
});
}