自动完成文本框与xml源不起作用

问题描述:

我有一个Web服务,返回一个字符串列表。 我想提供作为我的自动suggesttextbox数据源。 这里是我的web服务返回自动完成文本框与xml源不起作用

<ArrayOfString> 
    <string>Air Pollutants</string> 
    <string>Air Facilities</string> 
    <string>Air Emissions</string> 
    <string>Air Pollution</string> 
    <string>Air Quality Monitoring</string> 
    <string>Air Piracy</string> 
    </ArrayOfString> 

这是我的jQuery阿贾克斯。

$(document).ready(function() { 
    $('#<%=txt_search_extantdata.ClientID%>').autocomplete({ 
     source: function (request, response) { 
      $.ajax({ type: 'POST', 
       url: "/_layouts/Extantlibrarywebservice/getdata.asmx/GetSearchData", 
       data: { 'src': $("#<%=txt_search_extantdata.ClientID%>").val() }, 

            dataType: "xml", 
            success: function (xmlResponse) { 
             response($(xmlResponse).map(function() { 
              return { value: $(this).text() }; 
             })) 
            }, 
       error: function (XMLHttpRequest, textStatus, errorThrown) { 
        alert(textStatus); 
       } 

      }); 

     }, 
     minLength: 2 

    }); 
}); 

什么,我流汗输出目前是这样 一个与所有字符串单项连接

  Air PollutantsAir FacilitiesAir EmissionsAir Pollution Air Quality MonitoringAir Piracy 

我想显示出放什么东西是在一个线串

 Air Pollutants 
     AirFacilities 
     Air Emissions 
     Air Pollution 
     Air Quality Monitoring 
     Air Piracy 

我无法弄清楚我在做什么错误的任何帮助,请...

+0

你看过http://jqueryui.com/autocomplete/#xml和http://jqueryui.com/resources/demos/autocomplete/xml.html – 2014-12-06 06:05:27

+0

检查你的web服务返回xml或不在网络面板中萤火虫/镀铬控制台/ ie devtools – 2014-12-06 06:07:42

+0

它返回xml上面的结构是从响应中复制 – user388969 2014-12-06 12:26:02

OK想通了,你的成功回调应该是这样的:

success: function (xmlResponse) { 
         response($("string", xmlResponse).map(function() { 
          return { 
           value: $(this).text() 
          }; 
         })); 
        }, 

因为在这里你得到响应包含字符串的XML节点内ArrayofStrings 您选择到内响应映射应该是这样的

$("string", xmlResponse) 

希望帮助!!

+0

非常感谢,它做到了这一点 – user388969 2014-12-07 16:25:50