我想与jquery GetJson合作使用jquery autocomplete插件 在我的客户端页面中,我有以下代码:
<script>
$(document).ready(function () {
var test;
$.getJSON("getData.aspx", function (json) {
alert("function dome");
test=json;
});
$("input#autocomplete").autocomplete({
source: test
});
});
</script>
和我的getData.aspx Page_Load方法包含以下内容:
protected void Page_Load(object sender, EventArgs e)
{
List<string> test = new List<string>() { "Java", "Javascript", "sss", "sqre" };
StringBuilder sb = new StringBuilder();
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
jsSerializer.Serialize(test, sb);
Response.Clear();
Response.ContentType = "application/json";
Response.Write(test.ToString());
}
为什么不执行警报(“功能完成”)?为什么我的自动完成功能不起作用?有人可以帮助我吗?
答案 0 :(得分:2)
尝试更改它以执行此操作:
$(document).ready(function () {
$.getJSON("getData.aspx", null, function (json) {
alert("function dome");
$("input#autocomplete").autocomplete({
source: json
});
});
});
答案 1 :(得分:0)
您不能以这种方式使用AJAX,因为您无法知道请求何时返回。您需要在回调中执行操作:
$.getJSON("getData.aspx", {}, function (json) {
$("input#autocomplete").autocomplete({ source: json });
});
此外,您可以直接使用远程数据源,而无需致电$.getJson
:
$("input#autocomplete").autocomplete({ source: 'getData.aspx' });
这种方法的缺点是,只要需要获取更新的数据集,它就会产生异步。如果你有一小组固定的数据,第一种方法会更好,如果你有一个需要过滤结果的大型数据集,第二种方法会更好。