Autocomplete a text-input with remote data. For small to giant datasets.
<p><script type="text/javascript" src="jquery-1.1.2.pack.js"></script>
<script type='text/javascript' src='jquery.bgiframe.min.js'></script>
<script type='text/javascript' src='dimensions.js'></script>
<script type='text/javascript' src='jquery.autocomplete.js'></script>
<script type='text/javascript' src='localdata.js'></script>
<link rel="stylesheet" type="text/css" href="main.css" />
<link rel="stylesheet" type="text/css" href="jquery.autocomplete.css" />
<script type="text/javascript">
$().ready(function() {</p>
<p> function findValueCallback(event, data, formatted) {
$("<li>").text( !data ? "No match!" : "Selected: " + formatted).appendTo("#result");
}
function formatItem(row) {
//var row = row.split("|");
return row[0] + " (id: " + row[1] + ")";
}
function formatResult(row) {
return row[0];
}
$("#suggest1").autocomplete(cities);
$("#suggest12").autocomplete(months, {
minChars: 0,
max: 12,
autoFill: true
});
$("#suggest13").autocomplete(emails, {
minChars: 0,
width: 310,
matchContains: true,
formatItem: function(row, i, max) {
return i + "/" + max + ": \"" + row.name + "\" <" + row.to + ">";
},
formatResult: function(row) {
return row.to;
}
});
$("#suggest2").autocomplete("search.php", {
delay: 150,
width: 260,
formatItem: formatItem,
formatResult: formatResult,
selectFirst: false
});
$("#suggest3").autocomplete(cities, {
multiple: true,
mustMatch: true,
autoFill: true
});
$("#suggest4").autocomplete('search.php', {
multiple: true,
matchContains: true,
formatItem: formatItem,
formatResult: formatResult,
extraParams: {
foo: "bar"
}
});
$(":text, textarea").result(findValueCallback).next().click(function() {
$(this).prev().search();
});
$("#suggest2").result(function(event, data, formatted) {
$(this).find("..+/input").val(data[1]);
});
$("#suggest4").result(function(event, data, formatted) {
var hidden = $(this).find("..+/input");
hidden.val( (hidden.val() ? hidden.val() + ";" : hidden.val()) + data[1]);
});
});
</script></p>%0D%0A%3Cp%3E%3Cscript%20type%3D%22text%2Fjavascript%22%20src%3D%22jquery-1.1.2.pack.js%22%3E%3C%2Fscript%3E%0A%0D%0A%20%3Cscript%20type%3D%27text%2Fjavascript%27%20src%3D%27jquery.bgiframe.min.js%27%3E%3C%2Fscript%3E%0A%0D%0A%20%3Cscript%20type%3D%27text%2Fjavascript%27%20src%3D%27dimensions.js%27%3E%3C%2Fscript%3E%0A%0D%0A%20%3Cscript%20type%3D%27text%2Fjavascript%27%20src%3D%27jquery.autocomplete.js%27%3E%3C%2Fscript%3E%0A%0D%0A%20%3Cscript%20type%3D%27text%2Fjavascript%27%20src%3D%27localdata.js%27%3E%3C%2Fscript%3E%0A%0D%0A%20%3Clink%20rel%3D%22stylesheet%22%20type%3D%22text%2Fcss%22%20href%3D%22main.css%22%20%2F%3E%0A%0D%0A%20%3Clink%20rel%3D%22stylesheet%22%20type%3D%22text%2Fcss%22%20href%3D%22jquery.autocomplete.css%22%20%2F%3E%0A%0D%0A%20%0A%0D%0A%20%3Cscript%20type%3D%22text%2Fjavascript%22%3E%0A%0D%0A%20%24%28%29.ready%28function%28%29%20%7B%3C%2Fp%3E%0D%0A%3Cp%3E%20function%20findValueCallback%28event%2C%20data%2C%20formatted%29%20%7B%0A%0D%0A%20%24%28%22%3Cli%3E%22%29.text%28%20%21data%20%3F%20%22No%20match%21%22%20%3A%20%22Selected%3A%20%22%20%2B%20formatted%29.appendTo%28%22%23result%22%29%3B%0A%0D%0A%20%7D%0A%0D%0A%20%0A%0D%0A%20function%20formatItem%28row%29%20%7B%0A%0D%0A%20%2F%2Fvar%20row%20%3D%20row.split%28%22%7C%22%29%3B%0A%0D%0A%20return%20row%5B0%5D%20%2B%20%22%20%28id%3A%20%22%20%2B%20row%5B1%5D%20%2B%20%22%29%22%3B%0A%0D%0A%20%7D%0A%0D%0A%20%0A%0D%0A%20function%20formatResult%28row%29%20%7B%0A%0D%0A%20return%20row%5B0%5D%3B%0A%0D%0A%20%7D%0A%0D%0A%20%0A%0D%0A%20%24%28%22%23suggest1%22%29.autocomplete%28cities%29%3B%0A%0D%0A%20%24%28%22%23suggest12%22%29.autocomplete%28months%2C%20%7B%0A%0D%0A%20minChars%3A%200%2C%0A%0D%0A%20max%3A%2012%2C%0A%0D%0A%20autoFill%3A%20true%0A%0D%0A%20%7D%29%3B%0A%0D%0A%20%24%28%22%23suggest13%22%29.autocomplete%28emails%2C%20%7B%0A%0D%0A%20minChars%3A%200%2C%0A%0D%0A%20width%3A%20310%2C%0A%0D%0A%20matchContains%3A%20true%2C%0A%0D%0A%20formatItem%3A%20function%28row%2C%20i%2C%20max%29%20%7B%0A%0D%0A%20return%20i%20%2B%20%22%2F%22%20%2B%20max%20%2B%20%22%3A%20%5C%22%22%20%2B%20row.name%20%2B%20%22%5C%22%20%3C%22%20%2B%20row.to%20%2B%20%22%3E%22%3B%0A%0D%0A%20%7D%2C%0A%0D%0A%20formatResult%3A%20function%28row%29%20%7B%0A%0D%0A%20return%20row.to%3B%0A%0D%0A%20%7D%0A%0D%0A%20%7D%29%3B%0A%0D%0A%20%24%28%22%23suggest2%22%29.autocomplete%28%22search.php%22%2C%20%7B%0A%0D%0A%20delay%3A%20150%2C%0A%0D%0A%20width%3A%20260%2C%0A%0D%0A%20formatItem%3A%20formatItem%2C%0A%0D%0A%20formatResult%3A%20formatResult%2C%0A%0D%0A%20selectFirst%3A%20false%0A%0D%0A%20%7D%29%3B%0A%0D%0A%20%24%28%22%23suggest3%22%29.autocomplete%28cities%2C%20%7B%0A%0D%0A%20multiple%3A%20true%2C%0A%0D%0A%20mustMatch%3A%20true%2C%0A%0D%0A%20autoFill%3A%20true%0A%0D%0A%20%7D%29%3B%0A%0D%0A%20%24%28%22%23suggest4%22%29.autocomplete%28%27search.php%27%2C%20%7B%0A%0D%0A%20multiple%3A%20true%2C%0A%0D%0A%20matchContains%3A%20true%2C%0A%0D%0A%20formatItem%3A%20formatItem%2C%0A%0D%0A%20formatResult%3A%20formatResult%2C%0A%0D%0A%20extraParams%3A%20%7B%0A%0D%0A%20foo%3A%20%22bar%22%0A%0D%0A%20%7D%0A%0D%0A%20%7D%29%3B%0A%0D%0A%20%24%28%22%3Atext%2C%20textarea%22%29.result%28findValueCallback%29.next%28%29.click%28function%28%29%20%7B%0A%0D%0A%20%24%28this%29.prev%28%29.search%28%29%3B%0A%0D%0A%20%7D%29%3B%0A%0D%0A%20%24%28%22%23suggest2%22%29.result%28function%28event%2C%20data%2C%20formatted%29%20%7B%0A%0D%0A%20%24%28this%29.find%28%22..%2B%2Finput%22%29.val%28data%5B1%5D%29%3B%0A%0D%0A%20%7D%29%3B%0A%0D%0A%20%24%28%22%23suggest4%22%29.result%28function%28event%2C%20data%2C%20formatted%29%20%7B%0A%0D%0A%20var%20hidden%20%3D%20%24%28this%29.find%28%22..%2B%2Finput%22%29%3B%0A%0D%0A%20hidden.val%28%20%28hidden.val%28%29%20%3F%20hidden.val%28%29%20%2B%20%22%3B%22%20%3A%20hidden.val%28%29%29%20%2B%20data%5B1%5D%29%3B%0A%0D%0A%20%7D%29%3B%0A%0D%0A%20%7D%29%3B%0A%0D%0A%20%3C%2Fscript%3E%3C%2Fp%3E%20
<div id="content">
<form>
<p>
<label>Single City (local):</label>
<input type="text" id="suggest1" />
<input type="button" value="Get Value" />
</p>
<p>
<label>Month (local):</label>
<input type="text" id="suggest12" />
<input type="button" value="Get Value" />
</p>
<p>
<label>E-Mail (local):</label>
<input type="text" id="suggest13" />
<input type="button" value="Get Value" />
</p>
<p>
<label>Single Bird (remote):</label>
<input type="text" id="suggest2" />
<input type="button" value="Get Value" />
</p>
<p>
<label>Hidden input</label>
<input />
</p>
<p>
<label>Multiple Cities (local):</label>
<textarea id='suggest3' cols='40' rows='3'></textarea>
<input type="button" value="Get Value" />
</p>
<p>
<label>Multiple Birds (remote):</label>
<input id='suggest4' ></textarea>
<input type="button" value="Get Value" />
</p>
<p>
<label>Hidden input</label>
<input />
</p>
<p>
<label>Some dropdown (<3 IE):</label>
<select>
<option value="">Item 12334455</option>
<option value="2">Item 2</option>
<option value="3">Item 3</option>
<option value="4">Item 4</option>
</select>
</p>
</form>
<h3>Result:</h3> <ol id="result"></ol>
<h3>This is based on Dylan's initial plugin and Dan's and Anjesh' mods.</h3>
</div>
%20%3Cdiv%20id%3D%22content%22%3E%0A%0D%0A%20%0A%0D%0A%20%0A%0D%0A%3Cform%3E%0A%0D%0A%3Cp%3E%0A%0D%0A%3Clabel%3ESingle%20City%20%28local%29%3A%3C%2Flabel%3E%0A%0D%0A%3Cinput%20type%3D%22text%22%20id%3D%22suggest1%22%20%2F%3E%0A%0D%0A%3Cinput%20type%3D%22button%22%20value%3D%22Get%20Value%22%20%2F%3E%0A%0D%0A%3C%2Fp%3E%0A%0D%0A%3Cp%3E%0A%0D%0A%3Clabel%3EMonth%20%28local%29%3A%3C%2Flabel%3E%0A%0D%0A%3Cinput%20type%3D%22text%22%20id%3D%22suggest12%22%20%2F%3E%0A%0D%0A%3Cinput%20type%3D%22button%22%20value%3D%22Get%20Value%22%20%2F%3E%0A%0D%0A%3C%2Fp%3E%0A%0D%0A%3Cp%3E%0A%0D%0A%3Clabel%3EE-Mail%20%28local%29%3A%3C%2Flabel%3E%0A%0D%0A%3Cinput%20type%3D%22text%22%20id%3D%22suggest13%22%20%2F%3E%0A%0D%0A%3Cinput%20type%3D%22button%22%20value%3D%22Get%20Value%22%20%2F%3E%0A%0D%0A%3C%2Fp%3E%0A%0D%0A%3Cp%3E%0A%0D%0A%3Clabel%3ESingle%20Bird%20%28remote%29%3A%3C%2Flabel%3E%0A%0D%0A%3Cinput%20type%3D%22text%22%20id%3D%22suggest2%22%20%2F%3E%0A%0D%0A%3Cinput%20type%3D%22button%22%20value%3D%22Get%20Value%22%20%2F%3E%0A%0D%0A%3C%2Fp%3E%0A%0D%0A%3Cp%3E%0A%0D%0A%3Clabel%3EHidden%20input%3C%2Flabel%3E%0A%0D%0A%3Cinput%20%2F%3E%0A%0D%0A%3C%2Fp%3E%0A%0D%0A%3Cp%3E%0A%0D%0A%3Clabel%3EMultiple%20Cities%20%28local%29%3A%3C%2Flabel%3E%0A%0D%0A%3Ctextarea%20id%3D%27suggest3%27%20cols%3D%2740%27%20rows%3D%273%27%3E%3C%2Ftextarea%3E%0A%0D%0A%3Cinput%20type%3D%22button%22%20value%3D%22Get%20Value%22%20%2F%3E%0A%0D%0A%3C%2Fp%3E%0A%0D%0A%3Cp%3E%0A%0D%0A%3Clabel%3EMultiple%20Birds%20%28remote%29%3A%3C%2Flabel%3E%0A%0D%0A%3Cinput%20id%3D%27suggest4%27%20%3E%3C%2Ftextarea%3E%0A%0D%0A%3Cinput%20type%3D%22button%22%20value%3D%22Get%20Value%22%20%2F%3E%0A%0D%0A%3C%2Fp%3E%0A%0D%0A%3Cp%3E%0A%0D%0A%3Clabel%3EHidden%20input%3C%2Flabel%3E%0A%0D%0A%3Cinput%20%2F%3E%0A%0D%0A%3C%2Fp%3E%0A%0D%0A%3Cp%3E%0A%0D%0A%3Clabel%3ESome%20dropdown%20%28%26amp%3Blt%3B3%20IE%29%3A%3C%2Flabel%3E%0A%0D%0A%3Cselect%3E%0A%0D%0A%3Coption%20value%3D%22%22%3EItem%2012334455%3C%2Foption%3E%0A%0D%0A%3Coption%20value%3D%222%22%3EItem%202%3C%2Foption%3E%0A%0D%0A%3Coption%20value%3D%223%22%3EItem%203%3C%2Foption%3E%0A%0D%0A%3Coption%20value%3D%224%22%3EItem%204%3C%2Foption%3E%0A%0D%0A%3C%2Fselect%3E%0A%0D%0A%3C%2Fp%3E%0A%0D%0A%3C%2Fform%3E%0A%0D%0A%0A%0D%0A%3Ch3%3EResult%3A%3C%2Fh3%3E%20%3Col%20id%3D%22result%22%3E%3C%2Fol%3E%0A%0D%0A%3Ch3%3EThis%20is%20based%20on%20Dylan%27s%20initial%20plugin%20and%20Dan%27s%20and%20Anjesh%27%20mods.%3C%2Fh3%3E%0A%0D%0A%3C%2Fdiv%3E
{/tabs}