2014-12-06 61 views
0

我有一個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

回答

1

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