jquery input 搜索自动补全、typeahead.js

2023-05-25编程技术49058

最近做个一个功能需要用到自动补全,然后在网上找了很久,踩了各种的坑

最后用typeahead.js这个插件,经过自己的测试完美实现

使用方法:在页面中引入jquery、jquery.typeahead.min.js和jquery.typeahead.min.css文件。

<link href="../js/jquery.typeahead.min.css" rel="stylesheet" />
<script src="../js/jquery-1.10.1.min.js"></script>
<script src="../js/jquery.typeahead.min.js"></script>

html部分代码:

 <table border="" cellpadding="" cellspacing="" >
<tr>
<th>
<span class="primary"></span>所属企业:
</th>
<td>
<div class="typeahead__container">
<div class="typeahead__field">
<span class="typeahead__query">
<input class="js-typeahead"
name="q"
type="search"
autofocus
autocomplete="off" placeholder="输入企业名称查找企业" />
</span> </div>
</div> <label id="yixuanze" runat="server"></label> </td>
</tr>
</table>

jquery方法:

  $.typeahead({
input: '.js-typeahead',
minLength: ,
order: "asc",
items: ,
dynamic: true,
delay: ,
backdrop: {
"background-color": "#fff"
},
template: function (query, item) {
return '<span class="row">' +
'<span class="username">{{company_name}} </span>' +
'<span class="id">({{person_name}})</span><br/>' +
'<span class="address">{{company_address}} </span></span>'
},
emptyTemplate: "没有找到与 ‘{{query}}’ 相关的数据",
source: {
user: {
display: "company_name",
data: function () {
var deferred = $.Deferred(),
query = this.query;
$.getJSON(
"../Interface/****.ashx", //后台获取数据接口地址,这里我用的是ashx文件
{
dataType: "getcompany",
q: query
},
function (data) {
deferred.resolve(data)
}
)
return deferred;
}
}
},
callback: {
onClick: function (node, a, item, event) {
$("#yixuanze").html("已选择:" + item.company_name); },
onSendRequest: function (node, query) {
console.log('request is sent')
},
onReceiveRequest: function (node, query) {
console.log('request is received')
}
},
debug: true
});

运行效果:

下载:最新盘本请前往官网下载,网盘版本为2.10.4

官方下载地址:http://www.runningcoder.org/jquerytypeahead/demo/

百度网盘下载地址:https://pan.baidu.com/s/1-sFkU2d29qDesB2RIRgk2Q

插件截图

jquery input 搜索自动补全、typeahead.js的相关教程结束。

本文地址:https://www.ufcn.cn/tutorials/2671953.html

如非特殊说明,本站内容均来自于网友自主分享,概不代表本站观点,如有任何问题我们都将在收到反馈后的第一时间进行处理!