基于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不支持getElementsByClassName最终完美解决方案
Dec 17 Javascript
jquery动态加载select下拉框示例代码
Dec 10 Javascript
js中哈希表的几种用法总结
Jan 28 Javascript
jQuery的deferred对象详解
Nov 12 Javascript
JavaScript实现查找字符串中第一个不重复的字符
Dec 29 Javascript
js查找节点的方法小结
Jan 13 Javascript
Js为表单动态添加节点内容的方法
Feb 10 Javascript
JS中setTimeout的巧妙用法前端函数节流
Mar 24 Javascript
Html5+jQuery+CSS制作相册小记录
Dec 30 Javascript
深入掌握 react的 setState的工作机制
Sep 27 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
Oct 26 jQuery
JavaScript分页组件使用方法详解
Jul 26 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基础知识:类与对象(1)
2006/12/13 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
2016/02/26 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
纯CSS3实现质感细腻丝滑按钮
2021/03/09 HTML / CSS
地震发生中逃生十大法则
2008/05/12 Javascript
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
那些年,我还在学习jquery 学习笔记
2012/03/05 Javascript
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
2012/10/11 Javascript
通过JS来判断页面控件是否获取焦点
2014/01/03 Javascript
JQuery中操作Css样式的方法
2014/02/12 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
深入理解JavaScript系列(38):设计模式之职责链模式详解
2015/03/04 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
nodejs redis 发布订阅机制封装实现方法及实例代码
2016/12/15 NodeJs
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
[js高手之路]HTML标签解释成DOM节点的实现方法
2017/08/31 Javascript
js通过Date对象实现倒计时动画效果
2017/10/27 Javascript
Bootstrap table使用方法汇总
2017/11/17 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
python根据出生日期返回年龄的方法
2015/03/26 Python
python+mongodb数据抓取详细介绍
2017/10/25 Python
Django分页功能的实现代码详解
2019/07/29 Python
python批量修改ssh密码的实现
2019/08/08 Python
Python 实现Serial 与STM32J进行串口通讯
2019/12/18 Python
HTML5自定义属性前缀data-及dataset的使用方法(html5 新特性)
2017/08/24 HTML / CSS
Muziker英国:中欧最大的音乐家商店
2020/02/05 全球购物
会计电算化专业自荐信
2014/03/15 职场文书
优秀党务工作者事迹材料
2014/05/07 职场文书
老干部工作先进事迹
2014/08/17 职场文书
知识就是力量演讲稿
2014/09/13 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
以下牛机,你有几个
2022/04/05 无线电