2010-03-17 23:42:32 +00:00
<!DOCTYPE html>
< html lang = "en" >
< head >
2010-09-10 02:33:09 +00:00
< meta charset = "utf-8" >
< title > jQuery UI Autocomplete - XML data parsed once< / title >
2010-09-10 02:24:52 +00:00
< link rel = "stylesheet" href = "../../themes/base/jquery.ui.all.css" >
2010-11-12 14:19:26 +00:00
< script src = "../../jquery-1.4.4.js" > < / script >
2010-09-10 02:24:52 +00:00
< script src = "../../ui/jquery.ui.core.js" > < / script >
< script src = "../../ui/jquery.ui.widget.js" > < / script >
< script src = "../../ui/jquery.ui.position.js" > < / script >
< script src = "../../ui/jquery.ui.autocomplete.js" > < / script >
< link rel = "stylesheet" href = "../demos.css" >
< style >
2010-07-19 14:06:07 +00:00
.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
2010-07-19 13:41:21 +00:00
< / style >
2010-09-10 02:24:52 +00:00
< script >
2010-03-17 23:42:32 +00:00
$(function() {
2010-09-10 02:24:52 +00:00
function log( message ) {
$( "< div / > " ).text( message ).prependTo( "#log" );
$( "#log" ).attr( "scrollTop", 0 );
2010-03-17 23:42:32 +00:00
}
2010-09-10 02:24:52 +00:00
2010-03-17 23:42:32 +00:00
$.ajax({
url: "london.xml",
dataType: "xml",
2010-09-10 02:24:52 +00:00
success: function( xmlResponse ) {
var data = $( "geoname", xmlResponse ).map(function() {
2010-03-17 23:42:32 +00:00
return {
2010-09-10 02:24:52 +00:00
value: $( "name", this ).text() + ", " +
( $.trim( $( "countryName", this ).text() ) || "(unknown country)" ),
id: $( "geonameId", this ).text()
2010-03-17 23:42:32 +00:00
};
}).get();
2010-09-10 02:24:52 +00:00
$( "#birds" ).autocomplete({
2010-03-17 23:42:32 +00:00
source: data,
minLength: 0,
2010-09-10 02:24:52 +00:00
select: function( event, ui ) {
log( ui.item ?
"Selected: " + ui.item.value + ", geonameId: " + ui.item.id :
"Nothing selected, input was " + this.value );
2010-03-17 23:42:32 +00:00
}
});
}
2010-09-10 02:24:52 +00:00
});
2010-03-17 23:42:32 +00:00
});
< / script >
< / head >
< body >
< div class = "demo" >
< div class = "ui-widget" >
< label for = "birds" > London matches: < / label >
< input id = "birds" / >
< / div >
< div class = "ui-widget" style = "margin-top:2em; font-family:Arial" >
Result:
< div id = "log" style = "height: 200px; width: 300px; overflow: auto;" class = "ui-widget-content" > < / div >
< / div >
< / div > <!-- End demo -->
2010-09-10 02:24:52 +00:00
2010-03-17 23:42:32 +00:00
< div class = "demo-description" >
2010-09-10 02:24:52 +00:00
< p > This demo shows how to retrieve some XML data, parse it using jQuery's methods, then provide it to the autocomplete as the datasource.< / p >
< p > This should also serve as a reference on how to parse a remote XML datasource - the parsing would just happen for each request within the source-callback.< / p >
2010-03-17 23:42:32 +00:00
< / div > <!-- End demo - description -->
< / body >
< / html >