如何将自动完成function连接到文本框?

与此相关: jquery不会出错或成功

我有一个旧的1.1 asp.net/vb.net项目,我需要在文本框中添加自动完成function。 我写了一个.asmx(Web服务文件):

 _ Public Function GetTags() As String() Dim arr() As String = BindTags() Return arr End Function Private Function BindTags() As String() Dim cmdSelect As SqlCommand Dim conMyData As SqlConnection Dim reader As SqlDataReader Dim myList As New ArrayList 'try and make a connection Try conMyData = New SqlConnection(ConfigurationSettings.AppSettings("strConn")) cmdSelect = New SqlCommand("select_tags_grid", conMyData) With cmdSelect .CommandType = CommandType.StoredProcedure 'add parameters .Parameters.Add("@SortOrder", SqlDbType.TinyInt).Value = 1 'check the clientid conMyData.Open() reader = cmdSelect.ExecuteReader(CommandBehavior.CloseConnection) End With While (reader.Read()) myList.Add(CType(reader("Tag"), String)) End While Dim arr() As String = CType(myList.ToArray(Type.GetType("System.String")), String()) Return arr Catch e As Exception 'clean up and close resources Throw e Finally cmdSelect = Nothing conMyData.Close() conMyData = Nothing End Try End Function 

这工作正常,因为我可以在运行此.asmx文件时看到数据。 然后我读了一些文章说文件说.net 1.1不支持json / jsonp格式并使用xml。 然后我继续开始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); } }); }, }); 

现在,当我运行我的应用程序并使用谷歌浏览器时,我没有看到当我在文本框中输入时弹出的开发人员工具控制台中的任何错误。 所以我不确定这是否有效。 我试着按照这个stackoverflow的答案: https : //stackoverflow.com/a/7729147/168703来看看这个人是怎么做到的,我很确定我是否正确遵循了? 谁能告诉我我做错了什么。

在Chrome的工具上,转到“网络”选项卡。 使用“清除”按钮删除所有条目,然后开始在文本框中键入内容。 如果自动完成工作正常,则应在您面前显示一个条目(在网络选项卡上),然后单击它应该会为您提供有关正在进行的操作的详细信息。

在此处输入图像描述

在上面的例子中,我正在调用我用于自动完成的generics处理程序。 由于您使用的是1.1并且您使用的是Web服务(如果我没有正确理解),您应该看到Web服务调用或类似的东西。