基于jquery实现多选下拉列表


Posted in jQuery onAugust 02, 2017

本文实例为大家分享了jquery实现多选下拉列表展示的具体代码,供大家参考,具体内容如下

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
   ul li{
    list-style: none;
    }
   .hide{display: none}
   .width150{
    width: 150px;
    }
   .width150 input[type="text"]{
     width: 100%; 
     height: 32px; 
     border: 1px solid #ccc; 
     border-radius: 4px; 
     padding-left: 12px;
   }
    .width150 ul{ 
      width: 96%; 
      padding: 0 0 0 20px; 
      margin: 0; 
      border: 1px solid #ccc; 
    }
    .width150 li{ 
      padding: 5px; 
    }
    .width150 li+li{ 
      border-top: 1px solid #ccc; 
    }
  </style>
</head>
<body> 
  <form id="form">  
    <div class="width150">
      可多选年份:<input type="text" id="yearInput" placeholder="请选择年份" readonly>
      <ul id="yearId" class="hide">
      </ul>
    </div>
  </form>
</body>
<script type="text/javascript" src="jquery.js"></script>
<script>
  (function(){
    var str = '';
    var arr = {
      0 : {name:'2015',id:0},
      1 : {name:'2016',id:0},
      2 : {name:'2017',id:0}
    };
    for (let x in arr){
      console.info(x);
      str += `<li><label><input type="checkbox" value="${arr[x].id}" data-name="${arr[x].name}">${arr[x].name}</label></li>`;
    }
    $('#yearId').html(str);
  })();

  $("#yearInput").click(function(){
    $(this).attr('placeholder','');
    var name = '';
    $('#yearId input').each(function () {//循环遍历checkbox
      var check=$(this).is(':checked');//判断是否选中
      if(check){
        name += $(this).attr('data-name')+',';
        $(this).attr('name',"yearId");
      }else {
        $(this).attr('name',"");
      }
    });
    $("#yearInput").val(name.slice(0,-1));//去除最后的逗号
  });

  $("#yearId").mouseover(function() {
    if (!$("#yearId").hasClass('hover')){//类hover在下面用来验证是否需要隐藏下拉,没有其他用途。
      $("#yearId").addClass('hover');
    }
  }).mouseout(function(){
    $("#yearId").removeClass('hover');
  });

  $(document).on('click',function() {
    if (!$("#yearInput").is(":focus") && !$("#yearId").hasClass('hover')) {//如果没有选中输入框且下拉不在hover状态。
      var name = '';
      $('#yearId input').each(function () {//遍历checkbox
        var check = $(this).is(':checked');//判断是否选中
        if (check) {
          name += $(this).attr('data-name') + ',';
          $(this).attr('name', "yearId");
        } else {
          $(this).attr('name', "");
        }
      });
      $("#yearInput").val(name.slice(0, -1));//去除最后的逗号
      $("#yearId").addClass('hide');
    } else {
      $("#yearId").removeClass('hide');
    }
  });
</script>
</html>

效果图:

基于jquery实现多选下拉列表

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

jQuery 相关文章推荐
jQuery日期范围选择器附源码下载
May 23 jQuery
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
关于jquery form表单序列化的注意事项详解
Aug 01 jQuery
JS/jQuery实现DIV延时几秒后消失或显示的方法
Feb 12 jQuery
jQuery实现的手动拖动控制进度条效果示例【测试可用】
Apr 18 jQuery
jQuery实现菜单的显示和隐藏功能示例
Jul 24 jQuery
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
Aug 28 jQuery
JQuery判断radio单选框是否选中并获取值的方法
Jan 17 jQuery
jquery无缝图片轮播组件封装
Nov 25 jQuery
jQuery实现的五星点评功能【案例】
Feb 18 jQuery
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
Jun 18 jQuery
ajax jquery实现页面某一个div的刷新效果
Mar 04 jQuery
jQuery接受后台传递的List的实例详解
Aug 02 #jQuery
基于Jquery Ajax type的4种类型(详解)
Aug 02 #jQuery
详解jquery选择器的原理
Aug 01 #jQuery
jQuery上传插件webupload使用方法
Aug 01 #jQuery
关于jquery form表单序列化的注意事项详解
Aug 01 #jQuery
简述jQuery Easyui一些用法
Aug 01 #jQuery
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
Aug 01 #jQuery
You might like
同时提取多条新闻中的文本一例
2006/10/09 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
2016/11/28 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
2017/08/07 PHP
点击文章内容处弹出页面代码
2009/10/01 Javascript
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
javascript hashtable 修正版 下载
2010/12/30 Javascript
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
js优化针对IE6.0起作用(详细整理)
2012/12/25 Javascript
jquery如何获取复选框的值
2013/12/12 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
JS解决iframe之间通信和自适应高度的问题
2016/08/24 Javascript
通过jquery实现页面的动画效果(实例代码)
2016/09/18 Javascript
浅谈React 属性和状态的一些总结
2016/11/21 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
2019/08/27 Javascript
微信小程序页面调用自定义组件内的事件详解
2019/09/12 Javascript
让Vue响应Map或Set的变化操作
2020/11/11 Javascript
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python pickle模块用法实例
2015/04/14 Python
Python生成器以及应用实例解析
2018/02/08 Python
python 读取视频,处理后,实时计算帧数fps的方法
2018/07/10 Python
Python常用特殊方法实例总结
2019/03/22 Python
200行python代码实现2048游戏
2019/07/17 Python
python解释器spython使用及原理解析
2019/08/24 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
Python partial函数原理及用法解析
2019/12/11 Python
Pytorch训练过程出现nan的解决方式
2020/01/02 Python
HTML5+JS实现俄罗斯方块原理及具体步骤
2013/11/29 HTML / CSS
怀俄明州飞钓:Platte River Fly Shop
2017/12/28 全球购物
不用游标的SQL语句有哪些
2012/09/07 面试题
个人授权委托书范本
2014/09/14 职场文书
家庭贫困证明范本(经典版)
2014/09/22 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL