全网整合营销服务商

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

免费咨询热线: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 


相关文章: 家庭建站与云服务器建站,如何选择更优?  建站之星如何修改网站生成路径?  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  建站主机选虚拟主机还是云服务器更好?  css网站制作参考文献有哪些,易聊怎么注册?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  北京的网站制作公司有哪些,哪个视频网站最好?  如何快速搭建FTP站点实现文件共享?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  建站之星伪静态规则如何正确配置?  如何在建站之星网店版论坛获取技术支持?  高端企业智能建站程序:SEO优化与响应式模板定制开发  安云自助建站系统如何快速提升SEO排名?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  如何在IIS中配置站点IP、端口及主机头?  如何在阿里云部署织梦网站?  成都网站制作报价公司,成都工业用气开户费用?  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  如何在IIS中新建站点并配置端口与物理路径?  如何在局域网内绑定自建网站域名?  如何快速查询域名建站关键信息?  北京专业网站制作设计师招聘,北京白云观官方网站?  如何快速打造个性化非模板自助建站?  家具网站制作软件,家具厂怎么跑业务?  如何获取PHP WAP自助建站系统源码?  Bpmn 2.0的XML文件怎么画流程图  制作营销网站公司,淘特是干什么用的?  如何通过虚拟主机快速搭建个人网站?  历史网站制作软件,华为如何找回被删除的网站?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  免费ppt制作网站,有没有值得推荐的免费PPT网站?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  如何自定义建站之星网站的导航菜单样式?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  香港服务器WordPress建站指南:SEO优化与高效部署策略  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  如何在景安云服务器上绑定域名并配置虚拟主机?  岳西云建站教程与模板下载_一站式快速建站系统操作指南  教学论文网站制作软件有哪些,写论文用什么软件 ?  开心动漫网站制作软件下载,十分开心动画为何停播?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  如何快速使用云服务器搭建个人网站?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  如何选择域名并搭建高效网站?  建站之星如何配置系统实现高效建站?  Python路径拼接规范_跨平台处理说明【指导】  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  网页设计网站制作软件,microsoft office哪个可以创建网页?  网站制作模板下载什么软件,ppt模板免费下载网站? 

您的项目需求

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