与此相关:如何将自动完成功能连接到文本框?
我试图将自动完成(来自 jquery ui)链接到文本框。我有以下内容:
$("#txtTags").autocomplete({
minLength: 0,
source: function(request, response) {
$.ajax({
type: "POST",
url: "GetTags.asmx/GetTags",
dataType: "xml",
contentType: "text/xml; charset=utf-8",
success: function(xml) {
alert("hi");
// Completion logic goes here
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
},
});
为什么我不能alert
从成功函数或错误函数中得到?我必须使用 dataType XML,因为我在一个古老的.net 1.1
应用程序上 json/jsonp 当时不支持(2002/2003)。GetTags.asmx 是我的网络服务方法。但是,当我在我的文本框中键入时,我当然没有收到任何错误,也没有收到自动完成选择。
更新:
修复了成功问题,所以我确实进入了成功功能,问题是我的自动完成文本框怎么还是空的?在我在这个问题顶部发布的第一个链接中,我已经从数据库中获取了我的自动完成数据,我将它存储为一个字符串数组,并在我的 webmethod 中返回它。我必须在 jquery 中做什么才能获取这些数据?
编辑 2
这是我从 chrome / 运行 webservice (.asmx) 文件后的 xml 文件,即:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/quikfix.jakah.com/GetTags">
<string>.net</string>
<string>.net-1.1</string>
<string>3g</string>
<string>6283</string>
<string>7641</string>
<string>8-id</string>
<string>80070005</string>
<string>accounts</string>
<string>actions</string>
<string>activation</string>
<string>active-directory</string>
<string>active-directory</string>
<string>ad</string>
<string>addin</string>
<string>adp</string>
<string>adp-tlm-interface</string>
<string>adptlm</string>
<string>adupdater</string>
<string>ajax</string>
</ArrayOfString>