基于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正则表达式在页面验证url网址输入是否正确
Apr 04 jQuery
使用jQuery实现动态添加小广告
Jul 11 jQuery
快速掌握jquery分页插件jqPaginator的使用方法
Aug 09 jQuery
jQuery中extend函数简单用法示例
Oct 11 jQuery
jQuery中ajax请求后台返回json数据并渲染HTML的方法
Aug 08 jQuery
jQuery实现鼠标移到某个对象时弹出显示层功能
Aug 23 jQuery
jQuery实现的简单歌词滚动功能示例
Jan 07 jQuery
jQuery位置选择器用法实例分析
Jun 28 jQuery
jQuery - AJAX load() 实例用法详解
Aug 27 jQuery
jquery validate 实现动态增加/删除验证规则操作示例
Oct 28 jQuery
jquery css实现流程进度条
Mar 26 jQuery
jQuery实现视频展示效果
May 30 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
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
PHP获取当前文件的父目录方法汇总
2016/07/21 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
如何让动态插入的javascript脚本代码跑起来。
2007/01/09 Javascript
jquery操作checkbox实现全选和取消全选
2014/05/02 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
mongoose设置unique不生效问题的解决及如何移除unique的限制
2017/11/07 Javascript
Nodejs实现爬虫抓取数据实例解析
2018/07/05 NodeJs
Electron-vue开发的客户端支付收款工具的实现
2019/05/24 Javascript
websocket4.0+typescript 实现热更新的方法
2019/08/14 Javascript
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
javascript实现时钟动画
2020/12/03 Javascript
详细解析Python中的变量的数据类型
2015/05/13 Python
python的paramiko模块实现远程控制和传输示例
2017/10/13 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
2018/01/06 Python
浅谈pycharm下找不到sqlalchemy的问题
2018/12/03 Python
Python将字符串常量转化为变量方法总结
2019/03/17 Python
python地震数据可视化详解
2019/06/18 Python
python 监测内存和cpu的使用率实例
2019/11/28 Python
国外平面设计第一市场:99designs
2016/10/25 全球购物
sort命令的作用和用法
2013/08/25 面试题
网络工程师的自我评价
2013/10/02 职场文书
动物学专业毕业生求职信
2013/10/11 职场文书
吸烟检讨书2000字
2014/02/13 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
清明节网上祭英烈活动总结
2014/04/30 职场文书
幸福家庭标语
2014/06/27 职场文书
会计学习心得体会
2014/09/09 职场文书
安全员岗位职责范本
2015/04/11 职场文书
学前教育见习总结
2015/06/23 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
扩展多台相同的Web服务器
2021/04/01 Servers
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android
浅谈spring boot使用thymeleaf版本的问题
2021/08/04 Java/Android
win sever 2022如何占用操作主机角色
2022/06/25 Servers