client/player/development-bundle/demos/autocomplete/remote-jsonp.html
author ymh <ymh.work@gmail.com>
Sat, 12 Jun 2010 04:25:05 +0200
changeset 0 cc4a51750724
permissions -rw-r--r--
first commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<!DOCTYPE html>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
<html lang="en">
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
<head>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
	<meta charset="UTF-8" />
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
	<title>jQuery UI Autocomplete Remote JSONP datasource demo</title>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
	<script type="text/javascript" src="../../ui/jquery.ui.position.js"></script>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
	<script type="text/javascript" src="../../ui/jquery.ui.autocomplete.js"></script>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
	<link type="text/css" href="../demos.css" rel="stylesheet" />
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
	<script type="text/javascript">
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
	$(function() {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
		function log(message) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
			$("<div/>").text(message).prependTo("#log");
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
			$("#log").attr("scrollTop", 0);
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
		}
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
		
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
		$("#city").autocomplete({
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
			source: function(request, response) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
				$.ajax({
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
					url: "http://ws.geonames.org/searchJSON",
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
					dataType: "jsonp",
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
					data: {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
						featureClass: "P",
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
						style: "full",
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
						maxRows: 12,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
						name_startsWith: request.term
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
					},
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
					success: function(data) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
						response($.map(data.geonames, function(item) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
							return {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
								label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
								value: item.name
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
							}
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
						}))
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
					}
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
				})
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
			},
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
			minLength: 2,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
			select: function(event, ui) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
				log(ui.item ? ("Selected: " + ui.item.label) : "Nothing selected, input was " + this.value);
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
			},
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
			open: function() {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
				$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
			},
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
			close: function() {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
				$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
			}
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
		});
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
	});
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
	</script>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
	<style>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
		.ui-autocomplete-loading { background: url(indicator.gif) no-repeat right; }
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
		#city { width: 25em; }
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
	</style>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
</head>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
<body>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
<div class="demo">
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
<div class="ui-widget">
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
	<label for="city">Your city: </label>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
	<input id="city" />
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
	Powered by <a href="http://geonames.org">geonames.org</a>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
</div>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
<div class="ui-widget" style="margin-top:2em; font-family:Arial">
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
	Result:
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
	<div id="log" style="height: 200px; width: 300px; overflow: auto;" class="ui-widget-content"></div>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
</div>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
</div><!-- End demo -->
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
<div class="demo-description">
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
<p>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
The Autocomplete widgets provides suggestions while you type into the field. Here the suggestions are cities, displayed when at least two characters are entered into the field.
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
</p>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
<p>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
In this case, the datasource is the <a href="http://geonames.org">geonames.org webservice</a>. While only the city name itself ends up in the input after selecting an element, more info is displayed in the suggestions to help find the right entry. That data is also available in callbacks, as illustrated by the Result area below the input. 
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
</p>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
</div><!-- End demo-description -->
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
</body>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
</html>