基于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 相关文章推荐
IE与Firefox在JavaScript上的7个不同句法分享
Oct 30 Javascript
JS前端框架关于重构的失败经验分享
Mar 17 Javascript
设置checkbox为只读(readOnly)的两种方式
Oct 11 Javascript
js发送短信倒计时的简单实现方法
Sep 08 Javascript
canvas实现手机端用来上传用户头像的代码
Oct 20 Javascript
Iscrool下拉刷新功能实现方法(推荐)
Jun 26 Javascript
JS实现移动端按首字母检索城市列表附源码下载
Jul 05 Javascript
Bootstrap Fileinput 4.4.7文件上传实例详解
Jul 25 Javascript
vue搜索和vue模糊搜索代码实例
May 07 Javascript
js贪心算法 钱币找零问题代码实例
Sep 11 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
Sep 27 Javascript
vue下的@change事件的实现
Oct 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
smarty基础之拼接字符串的详解
2013/06/18 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
typecho插件编写教程(四):插件挂载
2015/05/28 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
最佳的addEvent事件绑定是怎样诞生的
2011/10/24 Javascript
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
2012/02/13 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
Markdown与Bootstrap相结合实现图片自适应属性
2016/05/04 Javascript
jQuery 3.0 的 setter和getter 模式详解
2016/07/11 Javascript
基于angularJS的表单验证指令介绍
2016/10/21 Javascript
vue2组件实现懒加载浅析
2017/03/29 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
微信小程序实现订单倒计时
2020/11/01 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
2020/06/22 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
2020/07/19 Javascript
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
[05:17]DOTA2睡衣妹卖萌求签名 CJ第二天全明星影像
2013/07/28 DOTA
python中字符串类型json操作的注意事项
2017/05/02 Python
python爬虫_自动获取seebug的poc实例
2017/08/05 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
python基于paramiko将文件上传到服务器代码实现
2019/07/08 Python
代码实例讲解python3的编码问题
2019/07/08 Python
python中pygame安装过程(超级详细)
2019/08/04 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
机械绘图员岗位职责
2013/11/19 职场文书
保密协议书范本
2014/04/22 职场文书
团日活动总结报告
2014/06/25 职场文书
2014统计局民主生活会对照检查材料思想汇报
2014/10/02 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
python实现三次密码验证的示例
2021/04/29 Python
利用python进行数据加载
2021/06/20 Python