基于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 相关文章推荐
javascript css styleFloat和cssFloat
Mar 15 Javascript
jquery easyui的tabs使用时的问题
Mar 23 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
Oct 07 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
May 11 Javascript
javascript页面加载完执行事件代码
Feb 11 Javascript
javascript继承机制实例详解
Nov 20 Javascript
JavaScript中Function详解
Feb 27 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
Aug 03 Javascript
详谈JS中数组的迭代方法和归并方法
Aug 11 Javascript
微信小程序在线客服自动回复功能(基于node)
Jul 03 Javascript
es6 for循环中let和var区别详解
Jan 12 Javascript
JavaScript简易计算器制作
Jan 17 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
初级的用php写的采集程序
2007/03/16 PHP
PHP 数组排序方法总结 推荐收藏
2010/06/30 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
深入php var_dump()函数的详解
2013/06/05 PHP
简单的php新闻发布系统教程
2014/05/09 PHP
php保存信息到当前Session的方法
2015/03/16 PHP
PHP后台微信支付和支付宝支付开发
2017/04/28 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
通过代码实例解析PHP session工作原理
2020/12/11 PHP
javascript call方法使用说明
2010/01/11 Javascript
JS 密码强度验证(兼容IE,火狐,谷歌)
2010/03/15 Javascript
Safari5中alert的无限循环BUG
2011/04/07 Javascript
datagrid框架的删除添加与修改
2013/04/08 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
代码获取历史上的今天发生的事
2014/04/11 Javascript
原生javaScript实现图片延时加载的方法
2014/12/22 Javascript
详解JavaScript对Date对象的操作问题(生成一个倒数7天的数组)
2015/10/01 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
2016/11/21 Javascript
Bootstrap显示与隐藏简单实现代码
2017/03/06 Javascript
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
2017/06/26 jQuery
vue实现购物车的小练习
2020/12/21 Vue.js
[02:02]2018DOTA2亚洲邀请赛Mineski赛前采访
2018/04/04 DOTA
Python设计模式之适配器模式原理与用法详解
2019/01/15 Python
python for循环remove同一个list过程解析
2019/08/14 Python
Python 动态变量名定义与调用方法
2020/02/09 Python
python网络编程之五子棋游戏
2020/05/14 Python
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
企业计划生育责任书
2015/05/09 职场文书
植物园观后感
2015/06/11 职场文书
小学语文国培研修日志
2015/11/13 职场文书
导游词之江南园林狮子林
2019/09/16 职场文书