基于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 checkbox 全选/反选及批量删除
Apr 28 Javascript
javascript预览上传图片发现的问题的解决方法
Nov 25 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
Sep 01 Javascript
jquery+css实现动感的图片切换效果
Nov 25 Javascript
JS基于构造函数实现的菜单滑动显隐效果【测试可用】
Jun 21 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
Jul 04 Javascript
jQuery点击导航栏选中更换样式的实现代码
Jan 23 Javascript
angular.js指令中的controller、compile与link函数的不同之处
May 10 Javascript
深入浅出es6模板字符串
Aug 26 Javascript
详解React项目如何修改打包地址(编译输出文件地址)
Mar 21 Javascript
layer.prompt输入层的例子
Sep 24 Javascript
ES2020 已定稿,真实场景案例分析
May 25 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
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
PHP 无限级分类
2017/05/04 PHP
用javascript实现页面打印的三种方法
2007/03/05 Javascript
用Javascript同时提交多个Web表单的方法
2009/12/26 Javascript
javascript document.compatMode兼容性
2010/02/23 Javascript
iframe子父页面调用js函数示例
2013/11/07 Javascript
Jquery搜索父元素操作方法
2015/02/10 Javascript
js游戏人物上下左右跑步效果代码分享
2015/08/28 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
2015/09/25 Javascript
JS实现DIV容器赋值的方法
2015/12/14 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
React实践之Tree组件的使用方法
2017/09/30 Javascript
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
Bootstrap实现省市区三级联动(亲测可用)
2019/07/26 Javascript
解决layui checkbox 提交多个值的问题
2019/09/02 Javascript
微信小程序开发打开另一个小程序的实现方法
2020/05/17 Javascript
javascript使用canvas实现饼状图效果
2020/09/08 Javascript
Pycharm学习教程(5) Python快捷键相关设置
2017/05/03 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
2018/03/13 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
python监控nginx端口和进程状态
2019/09/06 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
如何通过python实现IOU计算代码实例
2020/11/02 Python
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
应聘教师推荐信
2013/10/31 职场文书
高中毕业自我鉴定
2013/12/13 职场文书
新年晚会主持词
2014/03/24 职场文书
食品安全工作方案
2014/05/07 职场文书
政风行风评议心得体会
2014/10/21 职场文书
2015年大学生社会实践评语
2015/03/26 职场文书
2016优秀毕业生个人事迹材料
2016/02/29 职场文书
财产分割协议书
2016/03/22 职场文书
详解Java ES多节点任务的高效分发与收集实现
2021/06/30 Java/Android
Docker官方工具docker-registry案例演示
2022/04/13 Servers