×
jQuery 教程jQuery 简介jQuery 安装jQuery 语法jQuery 选择器jQuery 事件

jQuery 效果

jQuery 隐藏和显示jQuery 淡入淡出jQuery 滑动jQuery 动画jQuery 停止动画jQuery Callback 方法jQuery 链

jQuery HTML

jQuery 获取jQuery 设置jQuery 添加元素jQuery 删除元素jQuery CSS 类jQuery css() 方法jQuery 尺寸

jQuery 遍历

jQuery 遍历jQuery 祖先jQuery 后代jQuery 同胞jQuery 过滤

jQuery Ajax

jQuery AJAX 简介jQuery load() 方法jQuery get()/post() 方法

jQuery 其他

jQuery noConflict() 方法jQuery JSONPjQuery 实例

jQuery 参考手册

jQuery 选择器jQuery 事件方法jQuery 效果方法jQuery HTML / CSS 方法jQuery 遍历方法jQuery AJAX 方法jQuery 杂项方法jQuery 属性

jQuery 插件

jQuery ValidatejQuery AccordionjQuery AutocompletejQuery MessagejQuery 密码验证jQuery PrettydatejQuery TooltipjQuery Treeview

jQuery Autocomplete


jQuery Autocomplete 插件根据用户输入值进行搜索和过滤,让用户快速找到并从预设值列表中选择。通过给 Autocomplete 字段焦点或者在其中输入字符,插件开始搜索匹配的条目并显示供选择的值的列表。通过输入更多的字符,用户可以过滤列表以获得更好的匹配。

该插件现在是 jQuery UI 的一部分,独立的版本不会再更新了。目前版本是 1.6。

访问 jQuery Autocomplete 官网,下载 jQuery Autocomplete 插件。

如需了解更多有关 Autocomplete 的细节,请查看 API 文档 自动完成部件(Autocomplete Widget)

实例演示

jQuery Autocomplete 插件演示。


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery Autocomplete 插件</title>
<script type="text/javascript" src="http://jquery.bassistance.de/autocomplete/lib/jquery.js"></script>
<script type='text/javascript' src='http://jquery.bassistance.de/autocomplete/lib/jquery.bgiframe.min.js'></script>
<script type='text/javascript' src='http://jquery.bassistance.de/autocomplete/lib/jquery.ajaxQueue.js'></script>
<script type='text/javascript' src='http://jquery.bassistance.de/autocomplete/lib/thickbox-compressed.js'></script>
<script type='text/javascript' src='http://jquery.bassistance.de/autocomplete/jquery.autocomplete.js'></script>
<script type='text/javascript' src='http://jquery.bassistance.de/autocomplete/demo/localdata.js'></script>
<link rel="stylesheet" type="text/css" href="http://jquery.bassistance.de/autocomplete/demo/main.css" />
<link rel="stylesheet" type="text/css" href="http://jquery.bassistance.de/autocomplete/jquery.autocomplete.css" />
<link rel="stylesheet" type="text/css" href="http://jquery.bassistance.de/autocomplete/lib/thickbox.css" />

<script type="text/javascript">
$().ready(function() {

function log(event, data, formatted) {
$("<li>").html( !data ? "No match!" : "Selected: " + formatted).appendTo("#result");
}

function formatItem(row) {
return row[0] + " (<strong>id: " + row[1] + "</strong>)";
}
function formatResult(row) {
return row[0].replace(/(<.+?>)/gi, '');
}

$("#suggest1").focus().autocomplete(cities);
$("#month").autocomplete(months, {
minChars: 0,
max: 12,
autoFill: true,
mustMatch: true,
matchContains: false,
scrollHeight: 220,
formatItem: function(data, i, total) {
// 不在值列表中显示当前月份(无论何种原因)
if ( data[0] == months[new Date().getMonth()] )
return false;
return data[0];
}
});
$("#suggest13").autocomplete(emails, {
minChars: 0,
width: 310,
matchContains: "word",
autoFill: false,
formatItem: function(row, i, max) {
return i + "/" + max + ": "" + row.name + "" [" + row.to + "]";
},
formatMatch: function(row, i, max) {
return row.name + " " + row.to;
},
formatResult: function(row) {
return row.to;
}
});
$("#singleBirdRemote").autocomplete("search.php", {
width: 260,
selectFirst: false
});
$("#suggest14").autocomplete(cities, {
matchContains: true,
minChars: 0
});
$("#suggest3").autocomplete(cities, {
multiple: true,
mustMatch: true,
autoFill: true
});
$("#suggest4").autocomplete('search.php', {
width: 300,
multiple: true,
matchContains: true,
formatItem: formatItem,
formatResult: formatResult
});
$("#imageSearch").autocomplete("images.php", {
width: 320,
max: 4,
highlight: false,
scroll: true,
scrollHeight: 300,
formatItem: function(data, i, n, value) {
return "<img src='images/" + value + "'/> " + value.split(".")[0];
},
formatResult: function(data, value) {
return value.split(".")[0];
}
});
$("#tags").autocomplete(["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby", "python", "c", "scala", "groovy", "haskell", "pearl"], {
width: 320,
max: 4,
highlight: false,
multiple: true,
multipleSeparator: " ",
scroll: true,
scrollHeight: 300
});


$(":text, textarea").result(log).next().click(function() {
$(this).prev().search();
});
$("#singleBirdRemote").result(function(event, data, formatted) {
if (data)
$(this).parent().next().find("input").val(data[1]);
});
$("#suggest4").result(function(event, data, formatted) {
var hidden = $(this).parent().next().find(">:input");
hidden.val( (hidden.val() ? hidden.val() + ";" : hidden.val()) + data[1]);
});
$("#suggest15").autocomplete(cities, { scroll: true } );
$("#scrollChange").click(changeScrollHeight);

$("#thickboxEmail").autocomplete(emails, {
minChars: 0,
width: 310,
matchContains: true,
highlightItem: false,
formatItem: function(row, i, max, term) {
return row.name.replace(new RegExp("(" + term + ")", "gi"), "<strong>$1</strong>") + "<br><span style='font-size: 80%;'>Email: &lt;" + row.to + "&gt;</span>";
},
formatResult: function(row) {
return row.to;
}
});

$("#clear").click(function() {
$(":input").unautocomplete();
});
});

function changeOptions(){
var max = parseInt(window.prompt('请输入要显示项的数目:', jQuery.Autocompleter.defaults.max));
if (max > 0) {
$("#suggest1").setOptions({
max: max
});
}
}

function changeScrollHeight() {
var h = parseInt(window.prompt('请输入新的滚动高度(以像素为单位的数字):', jQuery.Autocompleter.defaults.scrollHeight));
if(h > 0) {
$("#suggest1").setOptions({
scrollHeight: h
});
}
}

function changeToMonths(){
$("#suggest1")
// 清除已有的数据
.val("")
// 改变本地数据为月份
.setOptions({data: months})
// 获取 label 标签
.prev()
// 更新 label 标签
.text("月份(本地):");
}
</script>

</head>

<body>

<h1 id="banner">jQuery Autocomplete 插件演示</h1>

<div id="content">

<form autocomplete="off">
<p>
<label>单个城市(本地):</label>
<input type="text" id="suggest1" />
<input type="button" value="获取值" />
<input type="button" value="改变最大项" onclick="changeOptions();" />
<input type="button" value="改为月份数据" onclick="changeToMonths();" />
<input type="button" value="改变滚动高度" id="scrollChange" />
</p>
<p>
<label>月份(本地):</label>
<input type="text" id="month" />
<input type="button" value="获取值" />
(当前月份已从列表中排除)
</p>
<p>
<label>E-Mail(本地):</label>
<input type="text" id="suggest13" />
<input type="button" value="获取值" />
</p>
<p>
<label>单只鸟(远程):</label>
<input type="text" id="singleBirdRemote" />
<input type="button" value="获取值" />
</p>
<p>
<label>隐藏输入</label>
<input />
</p>
<p>
<label>单个城市(包含):</label>
<input type="text" id="suggest14" />
<input type="button" value="获取值" />
</p>
<p>
<label>多个城市(本地):</label>
<textarea id='suggest3' cols='40' rows='3'></textarea>
<input type="button" value="获取值" />
</p>
<p>
<label>多只鸟(远程):</label>
<textarea id='suggest4'></textarea>
<input type="button" value="获取值" />
</p>
<p>
<label>隐藏输入</label>
<textarea></textarea>
</p>
<p>
<label>图像搜索(远程):</label>
<input type="text" id='imageSearch' />
<input type="button" value="获取值" />
</p>
<p>
<label>标签(本地):</label>
<input type="text" id='tags' />
<input type="button" value="获取值" />
</p>
<p>
<label>一些下拉选项(&lt;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>

<input type="submit" value="提交" />
</form>

<p>
<a href="#TB_inline?height=155&width=400&inlineId=modalWindow" class="thickbox">点击这里查看一个 ThickBox 窗口内的 Autocomplete..</a>(即使超出范围插件也会正常工作)
</p>

<div id="modalWindow" style="display: none;">
<p>
<label>E-Mail(本地):</label>
<input type="text" id="thickboxEmail" />
<input type="button" value="获取值" />
</p>
</div>

<button id="clear">移除所有的 Autocomplete</button>

<a href="http://jquery.bassistance.de/autocomplete/demo/search.phps">PHP 脚本用于远程的 Autocomplete</a>

<h3>结果:</h3> <ol id="result"></ol>

</div>

</body>
</html>


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)