基于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 相关文章推荐
jQuery ul标签下拉菜单演示代码
Dec 11 Javascript
javascript中xml操作实现代码
Nov 21 Javascript
js解决select下拉选不中问题
Oct 14 Javascript
js实现字符串转日期格式的方法
May 20 Javascript
$.extend 的一个小问题
Jun 18 Javascript
Sublime Text 3常用插件及安装方法
Dec 16 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
Apr 29 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
Jun 03 Javascript
Vue Cli3 创建项目的方法步骤
Oct 15 Javascript
Vue.js实现大屏数字滚动翻转效果
Nov 29 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
Mar 04 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
Jun 02 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分页时出现的Fatal error的解决方法
2011/04/18 PHP
php自动给文章加关键词链接的函数代码
2012/11/29 PHP
php和javascript之间变量的传递实现代码
2012/12/19 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
2014/10/15 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
Exjs 入门篇
2010/04/07 Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
2012/05/24 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
JQuery核心函数是什么及使用方法介绍
2016/05/03 Javascript
详解Javascript获取缓存和清除缓存API
2017/05/25 Javascript
Vue-router 切换组件页面时进入进出动画方法
2018/09/01 Javascript
vue-better-scroll 的使用实例代码详解
2018/12/03 Javascript
ES6实现图片切换特效代码
2020/01/14 Javascript
js中延迟加载和预加载的具体使用
2021/01/14 Javascript
[01:27]DOTA2电竞之夜 今夜共饮庆功酒
2014/08/02 DOTA
[00:35]可解锁地面特效
2018/12/20 DOTA
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
Python函数嵌套实例
2014/09/23 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
Python中函数的基本定义与调用及内置函数详解
2019/05/13 Python
python关闭占用端口方式
2019/12/17 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
CSS3 box-shadow属性实例详解
2020/06/19 HTML / CSS
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
法国美发器材和产品购物网站:Beauty Coiffure
2016/12/05 全球购物
阿联酋优惠券服务:Living Kool
2019/12/12 全球购物
一套软件开发工程师笔试题
2015/05/18 面试题
机械设计毕业生自荐信
2014/02/02 职场文书
广播体操比赛口号
2014/06/10 职场文书
机关中层领导干部群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
python数据库批量插入数据的实现(executemany的使用)
2021/04/30 Python
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript
【js设计模式】SOLID五大设计原则
2022/03/24 Javascript