基于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
Sep 24 Javascript
初学Javascript的一些总结
Nov 03 Javascript
jQuery源码分析之Event事件分析
Jun 07 Javascript
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
Oct 14 Javascript
js中关于new Object时传参的一些细节分析
Mar 13 Javascript
jquery ajax同步异步的执行最终解决方案
Apr 26 Javascript
js继承call()和apply()方法总结
Dec 08 Javascript
jQuery过滤特殊字符及JS字符串转为数字
May 26 Javascript
jQuery移动端图片上传组件
Jun 12 Javascript
利用JQuery直接调用asp.net后台的简单方法
Oct 27 Javascript
vue自动添加浏览器兼容前后缀操作
Aug 13 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
Oct 22 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函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
php 解决旧系统 查出所有数据分页的类
2012/08/27 PHP
php实现图形显示Ip地址的代码及注释
2014/01/20 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
基于NodeJS的前后端分离的思考与实践(二)模版探索
2014/09/26 NodeJs
做web开发 先学JavaScript
2014/12/12 Javascript
JavaScript判断变量是否为空的自定义函数分享
2015/01/31 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
【经验总结】编写JavaScript代码时应遵循的14条规律
2016/06/20 Javascript
使用Node.js给图片加水印的方法
2016/11/15 Javascript
2种在vue项目中使用百度地图的简单方法
2018/09/28 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
[02:32]DOTA2亚洲邀请赛 C9战队出场宣传片
2015/02/07 DOTA
python查询sqlite数据表的方法
2015/05/08 Python
Python多线程实现同步的四种方式
2017/05/02 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
python实现播放音频和录音功能示例代码
2018/12/30 Python
Python提取特定时间段内数据的方法实例
2019/04/01 Python
利用pyuic5将ui文件转换为py文件的方法
2019/06/19 Python
Pytorch上下采样函数--interpolate用法
2020/07/07 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
HTML5高仿微信聊天、微信聊天表情|对话框|编辑器功能
2018/04/23 HTML / CSS
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
英国快时尚女装购物网站:PrettyLittleThing
2018/08/15 全球购物
NFL官方在线商店:NFLShop
2020/07/29 全球购物
内部类的定义、种类以及优点
2013/10/16 面试题
期末考试动员演讲稿
2014/01/10 职场文书
2014年乡镇植树节活动方案
2014/02/28 职场文书
经典演讲稿开场白
2014/08/25 职场文书
群众路线个人剖析材料及整改措施
2014/11/04 职场文书
导游词之山西-五老峰
2019/10/07 职场文书
linux中nohup和后台运行进程查看及终止
2021/06/24 Python
html5实现点击弹出图片功能
2021/07/16 HTML / CSS