全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

jQuery实现select模糊查询(反射机制)

通过如下代码就可以简单实现select带模糊查询的条件查询,具体如下jquery.select.js如下:

 (function($) {
 $.selectSuggest = function(target, data, itemSelectFunction) {
 var defaulOption = {
  suggestMaxHeight: '200px',//弹出框最大高度
  itemColor : '#000000',//默认字体颜色
  itemBackgroundColor:'RGB(199,237,204)',//默认背景颜色
  itemOverColor : '#ffffff',//选中字体颜色
  itemOverBackgroundColor : '#C9302C',//选中背景颜色
  itemPadding : 3 ,//item间距
  fontSize : 12 ,//默认字体大小
  alwaysShowALL : true //点击input是否展示所有可选项
  };
  var maxFontNumber = 0;//最大字数
  var currentItem;
  var suggestContainerId = target + "-suggest";
  var suggestContainerWidth = $('#' + target).innerWidth();
  var suggestContainerLeft = $('#' + target).offset().left;
  var suggestContainerTop = $('#' + target).offset().top + $('#' + target).outerHeight();
  var showClickTextFunction = function() {
  $('#' + target).val(this.innerText);
  currentItem = null;
  $('#' + suggestContainerId).hide();
  }
  var suggestContainer;
  if ($('#' + suggestContainerId)[0]) {
  suggestContainer = $('#' + suggestContainerId);
  suggestContainer.empty();
  } else {
  suggestContainer = $('<div></div>'); //创建一个子<div>
  }
  suggestContainer.attr('id', suggestContainerId);
  suggestContainer.attr('tabindex', '0');
  suggestContainer.hide();
  var _initItems = function(items) {
  suggestContainer.empty();
   var itemHight=0;
  for (var i = 0; i < items.length; i++) {
   if(items[i].text.length > maxFontNumber){
    maxFontNumber = items[i].text.length;
    }
   var suggestItem = $('<div></div>'); //创建一个子<div>
   suggestItem.attr('id', items[i].id);
   suggestItem.append(items[i].text);
   suggestItem.css({
    'padding':defaulOption.itemPadding + 'px',
   'white-space':'nowrap',
   'cursor': 'pointer',
   'background-color': defaulOption.itemBackgroundColor,
   'color': defaulOption.itemColor
   });
   suggestItem.bind("mouseover",
   function() {
   $(this).css({
    'background-color': defaulOption.itemOverBackgroundColor,
    'color': defaulOption.itemOverColor
   });
   currentItem = $(this);
   });
   suggestItem.bind("mouseout",
   function() {
   $(this).css({
    'background-color': defaulOption.itemBackgroundColor,
    'color': defaulOption.itemColor
   });
   currentItem = null;
   });
   suggestItem.bind("click", showClickTextFunction);
   suggestItem.bind("click", itemSelectFunction);
   suggestItem.appendTo(suggestContainer);
   suggestContainer.appendTo(document.body);
  }
  }
  var inputChange = function() {
  var inputValue = $('#' + target).val();
  inputValue = inputValue.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
  var matcher = new RegExp(inputValue, "i");
  return $.grep(data,
  function(value) {
   return matcher.test(value.text);
  });
  }
  $('#' + target).bind("keyup",
  function() {
  _initItems(inputChange());
  });
  $('#' + target).bind("blur",
  function() {
   if(!$('#' + suggestContainerId).is(":focus")){
   $('#' + suggestContainerId).hide();
   if (currentItem) {
   currentItem.trigger("click");
   }
   currentItem = null;
   return;
   }  
  });
  $('#' + target).bind("click",
  function() {
  if (defaulOption.alwaysShowALL) {
   _initItems(data);
  } else {
   _initItems(inputChange());
  }
  $('#' + suggestContainerId).removeAttr("style");
  var tempWidth = defaulOption.fontSize*maxFontNumber + 2 * defaulOption.itemPadding + 30;
  var containerWidth = Math.max(tempWidth, suggestContainerWidth);
  var h = this.scrollHeight;
  $('#' + suggestContainerId).css({
   'border': '1px solid #ccc',
   'max-height': '100px',
   'top': suggestContainerTop,
   'left': suggestContainerLeft,
   'width': containerWidth,
   'position': 'absolute',
   'font-size': defaulOption.fontSize+'px',
   'font-family':'Arial',
   'z-index': 99999,
   'background-color': '#FFFFFF',
   'overflow-y': 'auto',
   'overflow-x': 'hidden',
   'white-space':'nowrap'
  });
  $('#' + suggestContainerId).show();
  });
  _initItems(data);
  $('#' + suggestContainerId).bind("blur",
  function() {
  $('#' + suggestContainerId).hide();
  });
 }
 })(jQuery);

html如下:

 <!DOCTYPE html>
 <html lang="zh_cn">
  <head>
  <title>select.suggest</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <!-- Bootstrap -->
  <script src="js/jquery-1.10.2.js"></script>
  <script src="js/jquery.select.js"></script>
  </head>
  <body>
  <h1>Hello, world!</h1>
  <div>
   <div>
   <div>.col-md-1
   </div>
   <div style="">
    <input id="testInput" type="text" />
   </div>
   </div>
  </div>
  <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
  <!-- Include all compiled plugins (below), or include individual files as needed -->
  </body>
  <script type="text/javascript">
  var datas =[{"id":"2","text":"中国石油"}, 
  {"id":"4","text":"中国建筑"},
  {"id":"3","text":"中国移动"},
  {"id":"5","text":"中国工商银行"},
  {"id":"7","text":"中国铁建"},
  {"id":"8","text":"上海汽车集团"},
  {"id":"9","text":"中国建设银行"},
  {"id":"10","text":"联想集团"}];
  var itemSelectFuntion = function(){
   alert(this.id + "," + this.innerHTML);
  };
  $.selectSuggest('testInput',datas,itemSelectFuntion);
  </script>
 </html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# jQuery  # select  # 模糊查询  # jquery zTree异步加载、模糊搜索简单实例分享  # jquery ztree实现模糊搜索功能  # jQuery实现id模糊查询的小例子  # jquery easyui combobox模糊过滤(示例代码)  # jQuery基于xml格式数据实现模糊查询及分页功能的方法  # jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例  # jQuery实现模糊查询的方法分析  # jQuery实现模糊搜索功能的方法分析  # 创建一个  # 联想集团  # 中国建设银行  # 中国工商银行  # 弹出  # 上海  # 中国石油  # 中国  # 大家多多  # 就可以  # suggestContainer  # empty  # hide  # innerText  # null  # alert  # attr  # gt  # lt  # div 


相关文章: 阿里云网站搭建费用解析:服务器价格与建站成本优化指南  手机网站制作与建设方案,手机网站如何建设?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  深圳网站制作的公司有哪些,dido官方网站?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  网站制作说明怎么写,简述网页设计的流程并说明原因?  婚礼视频制作网站,学习*后期制作的网站有哪些?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  jQuery 常见小例汇总  代购小票制作网站有哪些,购物小票的简要说明?  如何在云服务器上快速搭建个人网站?  高端云建站费用究竟需要多少预算?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  如何快速建站并高效导出源代码?  如何配置FTP站点权限与安全设置?  如何快速登录WAP自助建站平台?  实现虚拟支付需哪些建站技术支撑?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  香港服务器WordPress建站指南:SEO优化与高效部署策略  5种Android数据存储方式汇总  如何用虚拟主机快速搭建网站?详细步骤解析  如何在香港服务器上快速搭建免备案网站?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  广东企业建站网站优化与SEO营销核心策略指南  c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】  如何在万网自助建站平台快速创建网站?  油猴 教程,油猴搜脚本为什么会网页无法显示?  如何获取开源自助建站系统免费下载链接?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  b2c电商网站制作流程,b2c水平综合的电商平台?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  存储型VPS适合搭建中小型网站吗?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  已有域名和空间如何快速搭建网站?  大同网页,大同瑞慈医院官网?  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  建站主机功能解析:服务器选择与快速搭建指南  如何快速查询域名建站关键信息?  建站主机无法访问?如何排查域名与服务器问题  广平建站公司哪家专业可靠?如何选择?  如何快速配置高效服务器建站软件?  css网站制作参考文献有哪些,易聊怎么注册?  定制建站方案优化指南:企业官网开发与建站费用解析  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  制作网页的网站有哪些,电脑上怎么做网页?  如何快速选择适合个人网站的云服务器配置?  如何在建站宝盒中设置产品搜索功能? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。