select搜索功能实现

2023-05-16

select搜索功能实现

最近在找工作 没时间写博客 现在找到了 就发发工作上的代码吧!
今天我们说说select标签的搜索功能;
拿到任务时,我先想到就是上网找资料,最后看到的都是各种jquery插件,实在是不好用 我现在又不是开发新的项目,没法乱用插件。最后只能自己想:ps(纯js实现)

1.实现可编辑select,我的实现方式就是在原有的select内容显示框中假如input输入框。掩盖一下;最后做值传递;
2.对input的内容进行循环判断,做到搜索功能。
3.对搜索出来的值,进行处理;
4.放到select中去;

这是效果图  应为没怎么修饰,大家凑合看

下面上代码:

<select  id="telUserName"  onchange="putValueToInput()">
            <option value="">--请选择--</option>
            <option value="yua">上海</option>
            <option value="yuangui">天津</option>
            <option value="fang">安徽</option>
            <option value="zhang">江苏</option>
            <option value="zhang">湖南</option>
            <option value="zhang">湖北</option>
        </select>
        <input  type="text" name="input"  placeholder="-请选择-" id="input" onblur="inputValue()" 
                style="width:60px; height: 13px; position: absolute;left: 8px;top: 8px; "/>
        <div style="width:80px;border:1px solid #ccc;display:none; " id="DIV">
        </div>

这是页面标签,下面来js:

<script type="text/javascript">
        function putValueToInput(){
            var telUserName= document.getElementById("telUserName");
            var perpage=telUserName.options[telUserName.selectedIndex].text;
            var input=document.getElementById("input");
            input.value=perpage;
        }

        function inputValue(){
            var input=document.getElementById("input").value;
            var telUserName= document.getElementById("telUserName");
            var options=telUserName.getElementsByTagName("option");
            var div=document.getElementById("DIV");
            div.innerHTML="";
            var a = 0;
            for(var i=options.length-1;i>=1;i--){
                var optionText=options[i].text;
                if(optionText.indexOf(input) >= 0){
                    div.style.display='block';
                    div.innerHTML+="<span style='font-size: 12px;' onclick='getVlaue(this)'>"+optionText+"</span><br/>";
                    a++;
                }
            }
            if(a==0){
                div.style.display='none';
            }
        }

        function getVlaue(obj){
            var telUserName= document.getElementById("telUserName");
            var options=telUserName.getElementsByTagName("option");
            var div=document.getElementById("DIV");
            for(var i=options.length-1;i>=1;i--){
                var optionText=options[i].text;
                var optionValue=options[i].value;
                if(obj.innerHTML==optionText){
                    telUserName.value=optionValue;
                    document.getElementById("input").value=optionText;
                    div.style.display='none';
                    div.innerHTML="";
                }
        }   
    }

</script>

简要解释一下这三段js的作用
1、putValueToInput()是实现select选中值回现到input中,应为我们这里的input就是对select标签内容的代替;
2、inputValue()这是在input输入内容时,将input的value取出和select的options的值作对比;实现搜素功能;
3、getVlaue将选中的值传给select和input;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

select搜索功能实现 的相关文章

随机推荐

  • 业务架构的定义、特性和方法

    引言 业务架构一般不被开发重视 xff0c 开发人员喜欢追求新技术 xff0c 而技术是服务于业务的 xff0c 现在没有一项技术是自娱自乐的 xff0c 一定要支撑业务 xff0c 否则没有场景 设计好业务架构要考虑的方面比较多 xff0
  • VMware虚拟机扩展磁盘空间Ubuntu(超简单)

    一 简介 在平时使用时 xff0c 会遇到安装的虚拟机磁盘空间不足 的情况 此时需要给系统扩展磁盘空间 网上的很多教程都是输入一堆命令 xff0c 申请 分配 初始化 挂载等等特别麻烦 今天介绍一个最简单 最实用 的方法 二 实操 先进入r
  • Ubuntu 安装git及git命令

    1 检查git是否已经安装 xff0c 输入git version命令即可 xff0c 如果没有显示版本号表示没有安装git 2 安装git sudo apt get install git 3 配置git全局环境 git config g
  • Bad method handle type 7异常解决

    在利用androidx版本写demo时 xff0c 在添加了一些依赖后 xff0c 遇到了java lang ClassNotFoundExceptionbug xff0c 这就很奇怪了 xff0c 我就添加rxjava3的依赖 xff0c
  • linux防火墙添加端口

    iptables版 iptables nL line number vi etc sysconfig iptables 添加以下语句 A RH Firewall 1 INPUT p tcp m state state NEW m tcp d
  • 如何在webstorm使用eslint检查代码规范

    一 安装esLint xff08 一 xff09 打开项目代码 xff0c 进入terminal xff08 二 xff09 安装esLint 1 安装esLint npm install eslint span class token o
  • VUE基本格式

    96 VUE基本格式 lt template gt lt div gt lt div gt lt template gt lt script gt export default beforeCreate function data retu
  • Decode Ways 解码方法

    一条包含字母 A Z 的消息通过以下方式进行了编码 xff1a 39 A 39 gt 1 39 B 39 gt 2 39 Z 39 gt 26 给定一个只包含数字的非空 字符串 xff0c 请计算解码方法的总数 示例 1 输入 34 12
  • CAS单点登录6 - 服务端自定义返回的用户信息

    原理 返回的用户信息是在deployerConfigContext xml中的配置的 既然想自定义返回的用户信息 xff0c 那么继承org jasig services persondir support StubPersonAttrib
  • kotlin-android-extensions处理方案

    不幸的是 xff0c kotlin android extensions官方提示过时了 xff0c 而且列出来了几个过时的原因 但是这些我都不在乎 xff0c 也不觉得会对我产生什么影响 那可以尝试这样吧 xff0c 再被as彻底删除之后
  • Fragment跳转到Activity无动画

    这段代码无效果 xff1a startActivity span class hljs keyword new span Intent mContext GalleryActivity span class hljs keyword cla
  • Matlab科研绘图颜色补充(特别篇)—51种中国传统颜色

    前几天在找资料的时候 xff0c 发现了这个 xff1a 这是由 中国国家地理 杂志社制作的色卡 xff0c 据说总共包含98种中国传统颜色 xff0c 但目前能找到的就是这51种 xff08 而且比较模糊 xff09 百草霜 竹月 胭脂
  • Tensorflow Lite GPU在安卓上实现

    在近期工作中 xff0c 采用TensorFlow Lite将ssd mobilenet目标检测模型移植安卓机上 从安卓机测试的效果来看 xff0c 非量化的模型每帧图像推理的速率较慢 为压缩模型提升推理速度 xff0c 采用了减少模型深度
  • 面试官让我手写一个生产者消费者模式

    不知道你是否遇到过面试官让你手写生产者消费者代码 别说 xff0c 前段时间有小伙伴还真的遇到了这种情况 当时是一脸懵逼 但是 xff0c 俗话说 xff0c 从哪里跌倒就要从哪里爬起来 既然这次被问到了 xff0c 那就回去好好研究一下
  • 2-11 附:文档的基本操作 - 查询

  • ActiveMQ的简单Topic实现案例

    首先我们在这里要说一下消息中间件中有两个角色 xff0c 生产者Producer与消费者Consumer xff0c 简单理解即使发发送消息者与接收消息者 xff0c 在编写代码之前我们需要将下载到的ActiveMQ压缩包中的activem
  • Java学习之旅--集合的使用(Map集合)

    好几天没有更新了 xff0c 主要是最近正在学习集合 xff0c 让博主有点头大 所以就耽误了 xff1a 现在就来说说集合里的Map集合 xff1a import java span class hljs preprocessor uti
  • CartPole 强化学习详解1 - DQN

    工作中常会接触到强化学习的内容 xff0c 自己以gym环境中的Cartpole为例动手实现一下 xff0c 记录点实现细节 环境 xff1a python 61 3 6 13 xff1b pytorch 61 1 10 2 目录 1 gy
  • Java学习之旅--线程的创建方法

    线程创建的方法一 span class hljs keyword package span com geminno day14 createthread1 span class hljs keyword public span span c
  • select搜索功能实现

    select搜索功能实现 最近在找工作 没时间写博客 现在找到了 就发发工作上的代码吧 xff01 今天我们说说select标签的搜索功能 xff1b 拿到任务时 xff0c 我先想到就是上网找资料 xff0c 最后看到的都是各种jquer