XMLコンテンツを返すリモートスクリプトによって値が生成されるオートコンプリートテキストボックスを実装しようとしています。JQuery-1.4.3とJQuery-UI-1.8.5のオートコンプリートウィジェットを使用しています。
一度解析されたXMLデータのオートコンプリートデモページの例を調べ、コメントを実装しようとしています。
これは、リモートXMLデータソースを解析する方法のリファレンスとしても役立つはずです。解析は、ソースコールバック内のリクエストごとに発生します。
テストとして、提供されているXMLデモでこれを機能させようとしています。上記のコメントは、オートコンプリートの「ソース」プロパティをAjax呼び出しに置き換える必要があることを示しています。それでも、デモページで提供されている関数でこれを変更すると、次のオートコンプリート関数で結果が得られません。
$( "#birds" ).autocomplete({
source: function(request, response) {
$.ajax({
url: "london.xml",
dataType: "xml",
success: function( xmlResponse ) {
var data = $( "geoname", xmlResponse ).map(function() {
//alert($('name', this).text());
return {
value: $( "name", this ).text() + ", " +
( $.trim( $( "countryName", this ).text() ) || "(unknown country)" ),
id: $( "geonameId", this ).text()
};
}).get();
}
})
},
minLength: 0,
select: function( event, ui ) {
log( ui.item ?
"Selected: " + ui.item.value + ", geonameId: " + ui.item.id :
"Nothing selected, input was " + this.value );
}
});
それでも、単純なデバッグポップアップメッセージをコメントアウトすると、Ajax呼び出しがデータの構築に使用された値を取得できることがわかります。私の間違いはどこにありますか?
どんな助けでも大歓迎です!
敬具、
ロンヴァンデンブランデン