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

jQuery支持模糊查询下拉框菜单选择代码 立即下载

通过如下代码就可以简单实现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带模糊搜索下拉选择框 一个带下拉模糊搜索的select,替换下拉内容后即可直接使用,只需要把对应文件放到指定文件夹中引用即可 立即下载

相关推荐

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

主要为大家详细介绍了jQuery实现select带模糊查询的条件查询,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

前端jQuery和原生js 实现下拉框select模糊搜索功能总结

前端模糊查询,input框添加模糊搜索功能,原生select下拉列表添加搜索框实现模糊搜索,如:区划选择等场景

功能代码总结记录 4847

科研党必备:5分钟搞定Arxiv论文批量导入NoteExpress(附PDF自动下载技巧)

本文为科研人员提供了一套高效的自动化工作流,实现从Arxiv批量检索论文、自动下载PDF到无缝导入NoteExpress的全过程。通过Python脚本和NASA ADS等工具,可大幅提升文献管理效率,特别适合需要追踪前沿动态的研究生和科研团队。

orange的博客 398

JQuery select支持模糊搜索

模态框select2下拉框不能搜索,使用模态框,一般都会自动带上一个属性, tabindex=“-1” ,因为这个属性的存在,导致select2的搜索框无法输入,去掉这个属性即可解决。html中tabindex属性可以设置键盘中的TAB键在控件中的移动顺序,即焦点顺序。模态框中的select2下拉框很窄,增加宽度属性。增加js,在页面加载完成时重写select。引入:select2。

阿呆的专栏 1325

告别拼音!用VSCode+Dosbox-X搞定汇编语言课程设计里的中文姓名显示

本文详细介绍了如何利用VSCode和Dosbox-X解决汇编语言课程设计中中文姓名显示的问题。通过配置开发环境、理解GB2312编码及正确使用汇编指令,学生可以告别拼音显示,实现中文字符的正确输出。文章还提供了完整的代码示例和常见问题排查方法,帮助读者快速掌握这一实用技能。

weixin_30872337的博客 425

IMU标定中的Allen方差

Allen方差 Allen方差是IMU标定任务中的常用工具。IMU标定可以分为确定性误差和随机误差,确定性误差包括:scale、bias、misalignment。随机误差则主要是高斯白噪声和bias随机游走。Allen方差主要用于标定随机误差。 Allen方差获取 Allen方差的计算方法如下: 保持IMU静止, 采集N个数据点。 将N个点定长分组,常用的交叠式Allen方差如下(n=3): 对于每个子集,计算均值后,计算相邻两组的方差,得到的时间-方差曲线即为Allen方差。 Alle

realjc的博客 5737

支持模糊查询的替代html中select的jquery插件

我们在页面上经常会用到select,

sannychan的专栏 9347

跨域问题 - 其他 method 都没有跨域问题,只有delete有跨域的问题

跨域的配置等一切正常,GETPOSTPUTOPTIONS都可以正常访问, 唯独有一个DELETE有跨域的问题, 经过排查发现这个DELETE请求有body, 经过一系列排查, 发现头部有一个不太正常的值是为了避免浏览器的影响, 直接在 postman 中新建一个请求, 竟然也有跨域的问题, 后来把的值改成了请求就可以正常调用了.

galoiszhou的博客 528

记录-前端带搜索功能的选择空间

(function($) { $.getSelectorValue = function(target){ return $('#xyt_selector_' + target).val(); } $.selectSuggest = function(target, data, itemSelectFunction) { var defaulOption

guduyishuai的博客 293

Windows下Python多版本共存与切换的终极指南(含环境变量详解)

本文详细解析了在Windows系统下实现Python多版本共存与切换的完整方案。通过深入讲解环境变量Path的底层机制,提供了从安装策略、精细化Path管理到创建快速切换脚本的实战指南,并介绍了py启动器和虚拟环境等高级技巧,帮助开发者彻底解决版本冲突问题,提升开发效率。

v6b7n8m9q0的博客 538

AWS 小白书 [1] 全球架构

小白应该知道的 AWS 知识

boshansolo的博客 707

JQuery input框输入查询,显示模糊查询的select下拉

1.效果图 2.html <span class="second"> <input type="text" name="makeupCo" id="makeupCo" class="makeinp" onfocus="setfocus(this)" oninput="setinput(this);" placeholder="请选择或输入" /> <select name="makeupCoSe" id="typenum" onchang

qwer1154928613的博客 1771

北京大学MuMo多模态肿瘤分类模型复现与迁移学习

本项目复现了北京大学MuMo多模态肿瘤分类模型,并针对特定医学影像数据集进行迁移学习。MuMo模型通过整合CT、MRI、PET等多模态医学影像数据,显著提升了肿瘤分类准确性。项目内容包括环境配置(Python 3.8+、PyTorch 1.9+)、数据预处理(DICOM/NIfTI格式处理、强度归一化)、多模态数据集类实现,以及训练验证测试集划分。关键特点是采用MONAI医学影像处理库,实现三维医学影像的标准化预处理流程,并支持多种模态数据的并行加载与联合训练,为后续模型复现和迁移学习奠定基础。

max500600的博客 1241

sql语句模糊查询单引号问题,及jquery方法扩展,struts2拦截器

在sql语句中使用单引号模糊查询可能报错,例如:查询的单引号与%%两端的单引号匹配了形成断句,从而导致查询失败。所以要将单引号转义,变成两个单引号 '' 就行了。 SELECT * from ft_providers WHERE last_name like '%'%'; //报错 SELECT * from ft_providers WHERE last_name like

Agger的博客 2436

游戏大厂如何解析引擎技术

本文系统解析了游戏大厂如何评估和定制游戏引擎。游戏引擎作为游戏开发的核心基础,大厂会从性能、跨平台支持、渲染能力、网络模块等8个维度进行技术解析,通过文档查勘、源码阅读、Demo测试等7个步骤深度评估。解析后通常有三种决策:直接使用、深度定制或自研重构。文章以腾讯、网易、米哈游等为例,展示了不同厂商的引擎定制策略,并分析了技术解析面临的挑战和未来趋势。最终指出,体系化的引擎技术解析是打造高质量游戏的关键,需要持续的技术投入和团队协作。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 535

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

多条件查询

dao.impl实现类的方法: private String findAllPage = "select p.SetBudgetName,f.BudgetTypeName,un.UnitEngineeringName,de.DepartmentName from B_SetBudget p left join S_BudgetType f on p.BudgetTypeID=f.BudgetTy...

weixin_44600235的博客 740

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

使用jQuery实现实时模糊查询功能

使用jQuery实现实时模糊查询功能

丶Melody 7092

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jquery-editable-select设置可模糊查询的select

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <!-- 引入css样式表--> <link rel="stylesheet" href="jquery-editable-select.c...

bookhaha的博客 936

搜索suggest实现 动态的查询建议

解决的问题: 因为select下拉选项太多需要做搜索建议 提高页面加载速度 实现一次之后 后续的接入只需修改js和枚举 主要思路: 使用动态sql 拼装需要的参数 使用枚举来动态的加载表 在页面中传入需要的枚举值 和 需要like的字段 引入插件magicsuggest <script src="${pageContext.request.contextPath}/stati...

weixin_33805992的博客 612

jQuery下拉框搜索模糊查询实现

通过上述代码,我们实现了使用jQuery在下拉框中进行模糊查询的功能。用户可以通过输入框输入关键词,实时筛选出符合条件的选项,从而更方便快捷地选择需要的选项。希望本文对你有所帮助,如果有任何问题或疑问,欢迎留言讨论。

牛肉胡辣汤 3088

Jquery select模糊查询

模糊搜索 下拉列表(单选) 带搜索功能的下拉列表,优雅、简单,保存记录一下。 引入jquery包 <script src="../js/jquery-3.3.1.min.js"></script> 引入js文件、css样式文件 <script src="../js/jquery.searchableSelect.js"></script> <link rel="stylesheet" href="../css/jquery.searchab

lgb1997的博客 2324

select下拉框之select2模糊查询

这里主要还是介绍select2插件的单选模糊查询情况。 1、首先需要引入如下文件 [html]view plaincopy linkhref="select2.min.css"rel="stylesheet"/> scripttype="text/javascript"src="jquery-2.1.4.m

scyxm0426的专栏 6413

使用反射机制实现jQuery调用ashx类中的指定方法

近期用asp.net做个小网站,但又不喜欢使用asp.net的服务器端控件,经过一番思量后确定前端采用原始的html、后台采用Linq to Sql与数据库交互,Linq上面创建一业务逻辑层,而web前端通过使用jQuery的ajax方法异步调用asp.net的一般处理程序(handler),实现与后台的业务逻辑层交互,至此大方向开发框架确立,只是细节上jQuery调用ashx有点小麻烦,一次只能...

weixin_30613343的博客 228

html 搜索框输入提示,可输入可选择可模糊查询的select下拉,jquery实现操作(原生代码)

根据网络其他大神的代码进行了一些更改,现在可以把输入框放置任何位置。 效果图: html: <span class="second"> <input type="text" name="makeupCo" id="makeupCo" class="makeinp" onfocus="setfocus(this)" oninput="setinput(this);" placeholder="请选择或输入" /> <sel

PrimaryColor 4972

Jquery库实现select输入模糊查询

Jquery库实现select输入模糊查询 引入Jquert 效果: <script type="text/javascript" src="/serachalbelSelect/jquery.searchableSelect.js"></script> <link href="/serachalbelSelect/searchableSelect.css" rel="stylesheet"> 循环获取数据 <di

Aurora_____的博客 4114
上一篇: 判断是否为空
下一篇: 反射效果,自己公司内部编码,在text上输入内容后,通过输入内容查询数据库,弹出下拉框
ole_triangle_java
博客等级 码龄10年 82粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值