2012-09-10 15:33:46 +00:00
<!doctype html>
2010-03-17 23:42:32 +00:00
< html lang = "en" >
< head >
2010-09-10 02:33:09 +00:00
< meta charset = "utf-8" >
2015-09-30 13:11:22 +00:00
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
2010-09-10 02:33:09 +00:00
< title > jQuery UI Autocomplete - XML data parsed once< / title >
2013-12-02 18:36:12 +00:00
< link rel = "stylesheet" href = "../../themes/base/all.css" >
2010-09-10 02:24:52 +00:00
< link rel = "stylesheet" href = "../demos.css" >
< style >
2014-01-24 21:18:30 +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 >
2015-06-30 19:22:59 +00:00
< script src = "../../external/requirejs/require.js" > < / script >
< script src = "../bootstrap.js" >
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() + ", " +
2019-12-08 21:23:08 +00:00
( String.prototype.trim.call( $( "countryName", this ).text() ) ||
"(unknown country)" ),
2010-09-10 02:24:52 +00:00
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 = "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 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 >
2012-09-10 15:33:46 +00:00
< / div >
2010-03-17 23:42:32 +00:00
< / body >
< / html >