基于bootstrap插件实现autocomplete自动完成表单


Posted in Javascript onMay 07, 2016

基于bootstrap插件实现autocomplete自动完成表单,提供脚本代码,用例,以及后台服务端(php), 原文有些没说清楚的地方,希望能帮助大家.

首先肯定还是加载bootstrap&jquery了,需要额外说明的是,后端返回的二维数组,和formatItem方法下面的调用保持一致即可;
另外,返回的数据要先parseJSON!切记。

相关参数说明:

source:function(query,process){}。query表示当前文本输入框中的字符串,可在该方法中通过ajax向后台请求数据(数组形式的json对象),然后将返回的对象作为process的参数;
formatItem:function(item){}。对返回数据的具体某个json对象转化为字符串格式,用以显示在提示列表中,返回值:字符串;
setValue:function(item){}。选中提示列表某项时,设置文本输入框中显示的值以及实际需要获取的值。返回值格式:{'data-value':item["输入框显示值的item属性"],'real-value':item["实际需要获取值的item属性"]},后期可通过文本输入框的real-value属性获取该值;
items:自动完成提示的最大结果集数量,默认:8;
minLength:当前文本输入框中字符串达到该属性值时才进行匹配处理,默认:1;
delay:指定延时毫秒数后,才正真向后台请求数据,以防止输入过快导致频繁向后台请求,默认:500

基于bootstrap插件实现autocomplete自动完成表单,代码如下

1.代码

<script>
$('#sim_iccid').autocomplete({
 source:function(query,process){
 var matchCount = this.options.items;//允许返回结果集最大数量
 $.get("http://www.soyiyuan.com/update/",{"iccid":query,"matchCount":matchCount},function(respData){
  respData = $.parseJSON(respData);//解析返回的数据
  return process(respData);
 });
 },
 formatItem:function(item){
 return item["iccid"]+"("+item["mobile"]+")";
 },
 setValue:function(item){
 return {'data-value':item["iccid"],'real-value':item["mobile"]};
 }
});
</script>

2. $data为一个二维数组    
echo json_encode( $data )
3. 需要返回的标准json格式    

[code][{"iccid":"12345678901234567890","mobile":"1850000"},{"iccid":"12345785","mobile":"1850001"}][code]

Bootstrap自动完成控件Autocomplete是基于bootstrap自带控件typeahead改造而来,因为 typeahead不支持复杂的对象。

//示例代码如下:
 
$('#autocompleteInput').autocomplete({
 source:function(query,process){
  var matchCount = this.options.items;//返回结果集最大数量
  $.post("/bootstrap/region",{"matchInfo":query,"matchCount":matchCount},function(respData){
  return process(respData);
  });
 },
 formatItem:function(item){
  return item["regionName"]+"("+item["regionNameEn"]+","+item["regionShortnameEn"]+") - "+item["regionCode"];
 },
 setValue:function(item){
  return {'data-value':item["regionName"],'real-value':item["regionCode"]};
 }
 });
 
$("#goBtn").click(function(){ //获取文本框的实际值
 var regionCode = $("#autocompleteInput").attr("real-value") || "";
 alert(regionCode);
 });

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
js 鼠标点击事件及其它捕获
Jun 04 Javascript
JQuery学习笔记 nt-child的使用
Jan 17 Javascript
文本框回车提交与禁止提交示例
Sep 27 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
Apr 15 Javascript
简述JavaScript中正则表达式的使用方法
Jun 15 Javascript
省市联动效果的简单实现代码(推荐)
Jun 06 Javascript
用原生js统计文本行数的简单示例
Aug 19 Javascript
js模式化窗口问题![window.dialogArguments]
Oct 30 Javascript
ES6中Proxy代理用法实例浅析
Apr 06 Javascript
ES6入门教程之Class和Module详解
May 17 Javascript
Vue列表页渲染优化详解
Jul 24 Javascript
Vue 项目分环境打包的方法示例
Aug 03 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
May 07 #Javascript
js实现上传图片及时预览
May 07 #Javascript
Backbone.js框架中Model与Collection的使用实例
May 07 #Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
May 07 #Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
May 07 #Javascript
JavaScript的Backbone.js框架入门学习指引
May 07 #Javascript
JavaScript数组方法总结分析
May 06 #Javascript
You might like
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
php项目中百度 UEditor 简单安装调试和调用
2015/07/15 PHP
php检查页面是否被百度收录
2015/10/28 PHP
Prototype Selector对象学习
2009/07/23 Javascript
Web 前端设计模式--Dom重构 提高显示性能
2010/10/22 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
模拟一个类似百度google的模糊搜索下拉列表
2014/04/15 Javascript
js脚本获取webform服务器控件的方法
2014/05/16 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
2014/08/14 Javascript
jQuery实现的多级下拉菜单效果代码
2015/08/24 Javascript
javascript自动恢复文本框点击清除后的默认文本
2016/01/12 Javascript
JavaScipt选取文档元素的方法(推荐)
2016/08/05 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
Angular4学习之Angular CLI的安装与使用教程
2018/01/04 Javascript
vue2过滤器模糊查询方法
2018/09/16 Javascript
如何利用ES6进行Promise封装总结
2019/02/11 Javascript
nuxt 服务器渲染动态设置 title和seo关键字的操作
2020/11/05 Javascript
基于javascript实现移动端轮播图效果
2020/12/21 Javascript
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
Python对象转JSON字符串的方法
2016/04/27 Python
你真的了解Python的random模块吗?
2017/12/12 Python
Windows环境下python环境安装使用图文教程
2018/03/13 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
关于tf.TFRecordReader()函数的用法解析
2020/02/17 Python
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
制药工程专业毕业生推荐信
2013/12/24 职场文书
六一儿童节主持词
2014/03/21 职场文书
小学生五年级大队长竞选发言稿
2014/09/12 职场文书
合作意向书范本
2019/04/17 职场文书
阿里云服务器部署mongodb的详细过程
2021/09/04 MongoDB
详解Nginx 被动检查服务器的存活状态
2021/10/16 Servers