全网整合营销服务商

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

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

用jQuery实现可输入多选下拉组合框实例代码

  【写在前面的话】网站上很多用各种插件,比如依赖bootstrap的bootstrap-select插件等。虽然这些框架可以实现很多功能,但因为在实际项目中,可能只会用到其中的某个功能,若是一概引入,会导致整个js加载过于笨重。比如前面提到的bootstrap-select插件,在不压缩的情况下,达到300多k。因此,为了实现一个可填写的下拉框有点得不偿失。

  基于这种原因,于是私下用jquery写了一个比较简单的多选下拉可填写组合框。  

 container{
   margin: 20px auto;
   padding:0 15px;
   width: 50%; 
   height:300px;
   box-sizing: border-box;  
  }
  .text-container{
   display: inline-block;
   float:left;
   width: 15%;
   height: 32px;
   line-height: 32px;
   box-sizing: border-box;
  }
  .selectContainer{
   width: 70%;
   height:200px;
   float:left;
   position: relative;
   padding:0;
   margin:0;
   box-sizing: border-box;
  }
  .selectedContent{
   width:85%;
   height: 25px;
   float:left;   
  }
  .dropDown-toggle{
   width:14%;
   height:31px;
   line-height: 31px;
   text-align: center;
   border: 1px solid silver;
   border-left:none;
   float:left;
   padding:0;
   margin:0;
   box-sizing: border-box;
   cursor: pointer;
  }
  .dropDown-menu{
   margin:0;
   padding:0 15px 10px;
   width:100%;
   border:1px solid silver;
   border-top: none;
   box-sizing: border-box;
   list-style: none;
   position: absolute;
   top:31px;
   right:0;
  }
  .items{
   margin-top:8px;
   padding: 2px;
   cursor: pointer;
  }
  .items:hover{
   background: #ddd;
  }
  .isSelectedText{
   display: inline-block;
   width:90%;
  }
  .dsn{
   display: none;
  }
<div class="container">
 <span class="text-container">最爱的水果</span>
 <div class="multipleSelect selectContainer">
  <input type="text" class="selectedContent">
  <div class="dropDown-toggle">选择</div>
  <ul class="dropDown-menu dsn">
   <li class="items">
    <span class="isSelectedText">苹果</span>
    <span class="isSelected"><input type="checkbox"></span>
   </li>
   <li class="items">     
    <span class="isSelectedText">梨</span>
    <span class="isSelected"><input type="checkbox"></span>
   </li>
   <li class="items">
    <span class="isSelectedText">橘子</span>
    <span class="isSelected"><input type="checkbox"></span>
   </li>
   <li style="text-align: right">
    <button type="button" class="confirmSelect">确定</button>
   </li>
  </ul>
 </div>
</div>
$('.isSelected input[type=checkbox]').on('click', function(){
   var selectedItems = $(this).parents('.dropDown-menu').prevAll('.selectedContent').val().split(' ');
   var thisItem = $(this).parent().prev().text();
   var isExisted = 0;
   var isChecked = $(this).is(':checked');
   if(isChecked){
    selectedItems.map(function(item, index){
     if(item === thisItem){
      isExisted++
     }
    });
    if(!isExisted){
     selectedItems.push(thisItem)
    }
   }
   else{
    selectedItems.map(function(item, index){
     if(item === thisItem){
      selectedItems.splice(index, 1);
     }
    });
   }
   $(this).parents('.dropDown-menu').prevAll('.selectedContent').val(selectedItems.join(' '));
  })
  $('.confirmSelect').on('click', function(){
   $(this).parents('.dropDown-menu').addClass('dsn');
  })
  $('.dropDown-toggle').on('click', function(){
   $(this).next().toggleClass('dsn')
  });

  由于本组件中使用了数组的map方法,可能此方法在ie中不能兼容。由于鄙人电脑ie无法打开,用360浏览器测试后同样可是正常使用。


# jquery可输入多选下拉组合框  # jquery  # 下拉组合框  # jQuery实现下拉框多选 jquery-multiselect 的实例代码  # 基于jQuery下拉选择框插件支持单选多选功能代码  # jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)  # 自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框  # 一个简单的jquery的多选下拉框(自写)  # 利用Jquery实现可多选的下拉框  # Jquery多选下拉列表插件jquery multiselect功能介绍及使用  # jquery multiSelect 多选下拉框  # jQuery EasyUI API 中文文档 - ComboBox组合框  # 只会  # 得不偿失  # 写了  # 正常使用  # 可以实现  # 多选  # 无法打开  # 上很  # 情况下  # 加载  # 使用了  # 下拉框  # 写在前面  # 在实际  # border  # sizing  # text  # block  # inline  # display 


相关文章: 专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  如何通过建站之星自助学习解决操作问题?  ,想在网上投简历,哪几个网站比较好?  免费视频制作网站,更新又快又好的免费电影网站?  如何通过VPS建站实现广告与增值服务盈利?  网站制作公司排行榜,抖音怎样做个人官方网站  想学网站制作怎么学,建立一个网站要花费多少?  制作网页的网站有哪些,电脑上怎么做网页?  建站主机类型有哪些?如何正确选型  东莞专业制作网站的公司,东莞大学生网的网址是什么?  python的本地网站制作,如何创建本地站点?  打鱼网站制作软件,波克捕鱼官方号怎么注册?  在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  如何快速登录WAP自助建站平台?  如何通过FTP空间快速搭建安全高效网站?  建站主机CVM配置优化、SEO策略与性能提升指南  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  用v-html解决Vue.js渲染中html标签不被解析的问题  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  网站专业制作公司有哪些,做一个公司网站要多少钱?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  建站主机无法访问?如何排查域名与服务器问题  如何高效完成独享虚拟主机建站?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  建站主机服务器选型指南与性能优化方案解析  网页设计与网站制作内容,怎样注册网站?  建站之星Pro快速搭建教程:模板选择与功能配置指南  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  如何用花生壳三步快速搭建专属网站?  建站主机选择指南:服务器配置与SEO优化实战技巧  如何选择建站程序?包含哪些必备功能与类型?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  网站按钮制作软件,如何实现网页中按钮的自动点击?  深圳网站制作培训,深圳哪些招聘网站比较好?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  如何基于PHP生成高效IDC网络公司建站源码?  ,怎么用自己头像做动态表情包?  北京制作网站的公司,北京铁路集团官方网站?  如何制作一个表白网站视频,关于勇敢表白的小标题?  网站制作软件有哪些,制图软件有哪些?  建站之星云端配置指南:模板选择与SEO优化一键生成  如何在IIS7中新建站点?详细步骤解析  如何配置WinSCP新建站点的密钥验证步骤?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  清除minerd进程的简单方法  如何在阿里云购买域名并搭建网站? 

您的项目需求

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