基于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 相关文章推荐
Django1.7+JQuery+Ajax验证用户注册集成小例子
Apr 08 jQuery
JQueryMiniUI按照时间进行查询的实现方法
Jun 07 jQuery
jQuery.Form实现Ajax上传文件同时设置headers的方法
Jun 26 jQuery
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
Apr 26 jQuery
jQuery中将json数据显示到页面表格的方法
May 27 jQuery
jQuery实现获取form表单内容及绑定数据到form表单操作分析
Jul 03 jQuery
jQuery中$原理实例分析
Aug 13 jQuery
jQuery实现的简单日历组件定义与用法示例
Dec 24 jQuery
jQuery实现ajax的嵌套请求案例分析
Feb 16 jQuery
jquery ajax 请求小技巧实例分析
Nov 11 jQuery
jquery使用echarts实现有向图可视化功能示例
Nov 25 jQuery
jQuery HTML获取内容和属性操作实例分析
May 20 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相当简单的分页类
2008/10/02 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
开启PHP的伪静态模式
2015/12/31 PHP
php fread读取文件注意事项
2016/09/24 PHP
PHP常用的类封装小结【4个工具类】
2019/06/28 PHP
php测试kafka项目示例
2020/02/06 PHP
动态改变textbox的宽高的js
2006/10/26 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
json实现前后台的相互传值详解
2015/01/05 Javascript
js过滤HTML标签完整实例
2015/11/26 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
Vue.js移动端左滑删除组件的实现代码
2017/09/08 Javascript
详解使用webpack构建多页面应用
2017/12/21 Javascript
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
Vue项目中最新用到的一些实用小技巧
2018/11/06 Javascript
详解vantUI框架在vue项目中的应用踩坑
2018/12/06 Javascript
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python备份Mysql脚本
2008/08/11 Python
Python中使用动态变量名的方法
2014/05/06 Python
python中的装饰器详解
2015/04/13 Python
python使用标准库根据进程名如何获取进程的pid详解
2017/10/31 Python
python使用Apriori算法进行关联性解析
2017/12/21 Python
Windows环境下python环境安装使用图文教程
2018/03/13 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
2018/08/03 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
Django REST framework 如何实现内置访问频率控制
2019/07/23 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
PyCharm MySQL可视化Database配置过程图解
2020/06/09 Python
CSS3实现渐变背景兼容问题
2020/05/06 HTML / CSS
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
编写类String的构造函数、析构函数和赋值函数
2012/05/29 面试题
一年级学生期末评语
2014/04/21 职场文书
入党自荐书范文
2015/03/05 职场文书
Django对接elasticsearch实现全文检索的示例代码
2021/08/02 Python