2011-07-19 6 views
1

私はXMLからJQueryオートコンプリートを進めています。XMLからJQueryオートコンプリートの値を隠す

コールバックの値を表示せずに1つのXMLノードで検索したいのですが、解決策を見つけることができません。

これは、スクリプト

<script> 
$(function() { 
    $.ajax({ 
     url: "london.xml", 
     dataType: "xml", 
     success: function(xmlResponse) { 
      var data = $("geoname", xmlResponse).map(function() { 
       return { 
        value: $("name", this).text() + ", " + 
         ($.trim($("countryName", this).text()) || "(unknown country)") + ", " + 
         $("countryCode", this).text() 
         , 
         id: $("geonameId", this).text() 
       }; 
      }).get(); 
      $("#birds").autocomplete({ 
       source: data, 
       minLength: 0, 
       select: function(event, ui) { 
        $('#hide').val(ui.item.id) 
       } 
      }); 
     } 
    }); 
}); 
</script> 

これは現時点でのXMLノード

<geoname> 
<name>London</name> 
<lat>51.5084152563931</lat> 
<lng>-0.125532746315002</lng> 
<geonameId>2643743</geonameId> 
<countryCode>GB</countryCode> 
<countryName>United Kingdom</countryName> 
<fcl>P</fcl> 
<fcode>PPLC</fcode> 
</geoname> 

である私は、「王国」と入力し、結果をクリックすると、入力フィールドがロンドン」でいっぱいに、英国、GB " 私が望むのは、それを提案と入力フィールドに表示する、countryNameで検索することです。 「英国」と入力すると、提案内に「London、GB」が表示され、選択された入力フィールドの値として表示されます。

可能ですか?

答えて

0

確かに、あなたの帰りにラベルを追加します。

label: $("name", this).text() + ", " + $("countryCode", this).text() 

あなたのスクリプトはその後、次のようになります。

<script> 
    $(function() { 
     $.ajax({ 
      url: "london.xml", 
      dataType: "xml", 
      success: function(xmlResponse) { 
       var data = $("geoname", xmlResponse).map(function() { 
        return { 
         value: $("name", this).text() + ", " + 
          ($.trim($("countryName", this).text()) || 
          "(unknown country)") + ", " + 
          $("countryCode", this).text(), 
         label: $("name", this).text() + ", " + 
          $("countryCode", this).text(), 
         id: $("geonameId", this).text() 
       }; 
      }).get(); 
      $("#birds").autocomplete({ 
       source: data, 
       minLength: 0, 
       select: function(event, ui) { 
        $('#hide').val(ui.item.id) 
       } 
      }); 
     } 
    }); 
}); 

+0

私は「イギリス」は戻りません探してみましたが、このように任意の結果。それはまだ "ロンドン"や "GB"のようなクエリのために働いています – Luca

+0

@ルーカ:どのオートコンプリートを使用していますか?値を設定する代わりに設定できる「ラベル」プロパティがしばしばあります。 – Jordan

+0

これがhttp://jqueryui.com/demos/autocomplete/ – Luca