基于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 无限级 Select效果实现代码(json格式)
Aug 30 Javascript
javascript是怎么继承的介绍
Jan 05 Javascript
javascript数组操作方法小结和3个属性详细介绍
Jul 05 Javascript
Javascript编程中几种继承方式比较分析
Nov 28 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
Apr 28 Javascript
javascript监听页面刷新和页面关闭事件方法详解
Jan 09 Javascript
jQuery插件imgAreaSelect基础讲解
May 26 jQuery
jQuery AJAX 方法success()后台传来的4种数据详解
Aug 08 jQuery
详解vue配置后台接口方式
Mar 29 Javascript
解决layer.confirm选择完之后消息框不消失的问题
Sep 16 Javascript
JS回调函数深入理解
Oct 16 Javascript
js实现直播点击飘心效果
Aug 19 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文章按日期(月日)SQL归档语句
2012/11/29 PHP
php获取目录所有文件并将结果保存到数组(实例)
2013/10/25 PHP
php中使用base HTTP验证的方法
2015/04/20 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
javascript学习笔记(四) Number 数字类型
2012/06/19 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
使用javascript实现雪花飘落的效果
2015/01/13 Javascript
Javascript基础教程之数据类型转换
2015/01/18 Javascript
JS实现方向键切换输入框焦点的方法
2015/08/19 Javascript
JS实现标签页切换效果
2017/05/04 Javascript
详解vue+vueRouter+webpack的简单实例
2017/06/17 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
学习python (1)
2006/10/31 Python
python 读写txt文件 json文件的实现方法
2016/10/22 Python
详解python之配置日志的几种方式
2017/05/22 Python
Python操作使用MySQL数据库的实例代码
2017/05/25 Python
python实现list由于numpy array的转换
2018/04/04 Python
python中的二维列表实例详解
2018/06/19 Python
django框架自定义用户表操作示例
2018/08/07 Python
python实现静态web服务器
2019/09/03 Python
python 用opencv实现图像修复和图像金字塔
2020/11/27 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
Django使用django-simple-captcha做验证码的实现示例
2021/01/07 Python
Agoda西班牙:全球特价酒店预订
2017/06/03 全球购物
Java Servlet API中forward() 与redirect()的区别
2014/04/20 面试题
书香校园建设方案
2014/05/02 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
机电一体化应届生求职信
2014/08/09 职场文书
专题组织生活会思想汇报
2014/10/01 职场文书
2014年作风建设心得体会
2014/10/22 职场文书
简历中的自我评价应该这样写!
2019/07/12 职场文书
如何自己动手写SQL执行引擎
2021/06/02 MySQL
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js