基于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实现二级联动效果
Mar 30 jQuery
jQuery 添加样式属性的优先级别方法(推荐)
Jun 08 jQuery
jQuery实现菜单栏导航效果
Aug 15 jQuery
如何快速解决JS或Jquery ajax异步跨域的问题
Jan 08 jQuery
jquery+ajaxform+springboot控件实现数据更新功能
Jan 22 jQuery
jQuery中的for循环var与let的区别
Apr 21 jQuery
手写简单的jQuery雪花飘落效果实例
Apr 22 jQuery
jQuery插件实现弹性运动完整示例
Jul 07 jQuery
jQuery动态操作表单示例【基于table表格】
Dec 06 jQuery
JQuery Ajax跨域调用和非跨域调用问题实例分析
Apr 16 jQuery
jQuery实现input[type=file]多图预览上传删除等功能
Aug 02 jQuery
jQuery使用jsonp实现百度搜索的示例代码
Jul 08 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
PHP输出九九乘法表代码实例
2015/03/27 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
2016/04/04 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
2009/10/29 Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
2011/11/02 Javascript
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
基于jquery的跟随屏幕滚动代码
2012/07/24 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/07/18 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
JavaScript改变CSS样式的方法汇总
2015/05/07 Javascript
异步安全加载javascript文件的方法
2015/07/21 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
JS对大量数据进行多重过滤的方法
2016/11/04 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
JavaScript实现星星等级评价功能
2017/03/22 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
2018/10/22 Javascript
原生js实现公告滚动效果
2021/01/10 Javascript
Vant picker 多级联动操作
2020/11/02 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
详解Python操作RabbitMQ服务器消息队列的远程结果返回
2016/06/30 Python
Python中用psycopg2模块操作PostgreSQL方法
2017/11/28 Python
python 提取文件指定列的方法示例
2019/08/07 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
重新定义牛仔布,100美元以下:Warp + Weft
2018/07/25 全球购物
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
请说出以下代码输出什么
2013/08/30 面试题
应聘护士求职信
2014/07/21 职场文书
办公室务虚会发言材料
2014/10/20 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
清明节随笔
2015/08/15 职场文书
《烈火英雄》观后感:致敬和平时代的英雄
2019/11/11 职场文书