精华内容
下载资源
问答
  • 下拉框多选select多选

    2020-03-09 17:42:26
    下拉框多选,3个积分意思一下 ,博文地址https://blog.csdn.net/qq_42909145/article/details/104756982
  • checkbox多选

    2020-11-24 18:48:11
    checkbox多选
  • js多选下拉框多选下拉框多选下拉框js多选下拉框多选下拉框多选下拉框
  • ios-多选.zip

    2019-07-11 18:57:16
    多选
  • 多选下拉框

    2018-08-23 10:55:38
    多选下拉框 jq-multiselect
  • idea怎么光标多选

    万次阅读 2021-01-20 10:37:22
    idea怎么光标多选 ALT + SHIFT + R

    idea怎么光标多选

    ALT + SHIFT + R
    
    展开全文
  • select下拉框多选,超级好用!十分强大!

    万次阅读 多人点赞 2019-05-13 17:49:15
    先说点废话:一个需求,想把select变成下拉多选,网上查找了半天,给出的方案都是自定义一个标签,或者弄个什么ul下面li进行选择,看起来就繁琐,本人只想在select上面做文章,不得已,自己写了一个,只需要在select...

         

    正文:

            先说点废话:一个需求,想把select变成下拉多选,网上查找了半天,给出的方案都是自定义一个标签,或者弄个什么ul下面li进行选择,看起来就繁琐,本人只想在select上面做文章,不得已,自己写了一个,只需要在select上加个属性即可,方便实用!

           2019.11.30之前,算是selectMultip的第一个版本,没想到用的人还不少,自然也发现了很多隐藏的bug,虽然它比较简单但大家使用时还是有些困惑,基于以上等原因,selectMultip2.0问世(哈哈),2.0做了全面的升级,不仅解决了之前发现的bug,而且新增了api,使用方法还是原来的步骤:1、引入js文件,2、在select标签上添加属性multip,然后调用方法即可(只有两步哦!)

    可以先访问一下这里哟:演示地址 (不想访问也可以往下读)

    先上图:

    这个是选中后的效果,我们用的是select标签,选中后子标签会变成蓝色,如果想取消,再点击一下即可取消

    取值,调用selectMultip.getVal("22")方法即可:

    赋值,调用selectMultip.setVal(id,data)即可,第二个参数类型可以是字符串或者数组,如图:

    具体取值、赋值、动态加载等可以看下面的说明文档哦!

    那现在就开始使用吧(只需要两步):

    首先,将下面的js代码复制到一个js文件中(js文件名可以命名为selectMultip哦),并将其引入项目中即可。

    (function() {
    		selectMultip = {
    			register: function(id) {
    				//大致思路是:为下拉选创建一个隐藏的子选项,每次单选之后将单选的值追加到隐藏的子选项中,并将子选项选中显示即可
    				//全局查找所有标记multip的select
    				document.querySelectorAll("[multip]").forEach(function(e) {
    					render(e);
    				})
    			},
    			reload: function(id, data, setData) {
    				var htm = "";
    				for(var i = 0; i < data.length; i++) {
    					htm += '<option value="' + data[i].value + '">' + data[i].text + '</option>'
    				}
    				var e = document.getElementById(id);
    				e.innerHTML = htm;
    				render(e);
    				this.setVal(id, setData);
    			},
    			setVal: function(id, str) {
    				var type = Object.prototype.toString.call(str);
    				switch(type) {
    					case "[object String]":
    						document.getElementById(id).val = str;
    						break;
    					case "[object Array]":
    						document.getElementById(id).val = str.toString();
    						break;
    					default:
    						break;
    				}
    			},
    			getVal: function(id) {
    				return document.getElementById(id).val;
    			},
    
    		}
    
    		function render(e) {
    			e.param = {
    				arr: [],
    				valarr: [],
    				opts: []
    			};
    			var choosevalue = "",
    				op;
    
    			for(var i = 0; i < e.length; i++) {
    				op = e.item(i);
    				e.param.opts.push(op);
    				if(op.hasAttribute("choose")) {
    					if(choosevalue == "") {
    						choosevalue = op.value
    					} else {
    						choosevalue += "," + op.value;
    					}
    
    				}
    			}
    
    			//创建一个隐藏的option标签用来存储多选的值,其中的值为一个数组
    			var option = document.createElement("option");
    			option.hidden = true;
    			e.appendChild(option);
    			e.removeEventListener("input", selchange);
    			e.addEventListener("input", selchange);
    
    			//重新定义标签基础属性的get和set方法,实现取值和赋值的功能
    			Object.defineProperty(e, "val", {
    				get: function() {
    					return this.querySelector("[hidden]").value;
    				},
    				set: function(value) {
    					e.param.valarr = [];
    					var valrealarr = value == "" ? [] : value.split(",");
    					e.param.arr = [];
    					e.param.opts.filter(function(o) {
    						o.style = "";
    					});
    					if(valrealarr.toString()) {
    						for(var i = 0; i < valrealarr.length; i++) {
    							e.param.opts.filter(function(o) {
    								if(o.value == valrealarr[i]) {
    									o.style = "color: blue;";
    									e.param.arr.push(o.text);
    									e.param.valarr.push(o.value)
    								}
    							});
    						}
    						this.options[e.length - 1].text = e.param.arr.toString();
    						this.options[e.length - 1].value = e.param.valarr.toString();
    						this.options[e.length - 1].selected = true;
    					} else {
    						this.options[0].selected = true;
    					}
    
    				},
    				configurable: true
    			})
    			//添加属性choose 此属性添加到option中用来指定默认值
    			e.val = choosevalue;
    			//添加属性tip 此属性添加到select标签上
    			if(e.hasAttribute("tip") && !e.tiped) {
    				e.tiped = true;
    				e.insertAdjacentHTML('afterend', '<i style="color: red;font-size: 12px">*可多选</i>');
    			}
    		}
    
    		function selchange() {
    			var text = this.options[this.selectedIndex].text;
    			var value = this.options[this.selectedIndex].value;
    			this.options[this.selectedIndex].style = "color: blue;";
    			var ind = this.param.arr.indexOf(text);
    			if(ind > -1) {
    				this.param.arr.splice(ind, 1);
    				this.param.valarr.splice(ind, 1);
    				this.param.opts.filter(function(o) {
    					if(o.value == value) {
    						o.style = "";
    					}
    				});
    			} else {
    				this.param.arr.push(text);
    				this.param.valarr.push(value);
    			}
    			this.options[this.length - 1].text = this.param.arr.toString();
    			this.options[this.length - 1].value = this.param.valarr.toString();
    			if(this.param.arr.length > 0) {
    				this.options[this.length - 1].selected = true;
    			} else {
    				this.options[0].selected = true;
    			}
    		}
    	})();

    其次,在你的select上面加一个multip属性,如图:

    然后,就是代码的实现:

    调用一下这个selectMultip.register();方法即可。

    这个方法是对标有multip属性的select标签进行注册渲染,这样它就具备了多选的功能!

    完成!


    下面是使用的说明文档,总共四个方法!

    说明文档
    方法名 参数 说明
    selectMultip.register() 将全局下所有具有multip属性的select标签注册成为具有多选功能的下拉选。
    selectMultip.reload(id, data,setData)

    id:select标签上的id值

    data:渲染的数据

    格式如下:[{
            value: "",
            text: "---请选择---"
        }, {
            value: 1,
            text: "薯片"
        }, {
            value: 2,
            text: "大豆油"
        }, {
            value: 3,
            text: "花生"
        }]

    setData:设置默认值,可选。具体格式可参照selectMultip.selVal()方法的第二个参数

    重新渲染,使用于联动或者动态渲染select标签的场景,从后台服务器获得数据之后可调用此方法。

    selectMultip.setVal(id, data)

    id:select标签上的id值

    data: 可以为字符串,如:“1,2,3”或者“a,b,c”

     也可以为数组,如[1,2,3]或者["a","b","c"]

    给标签赋值
    selectMultip.getVal(id) id:select标签上的id值 取值

                


    关于动态渲染说明以及示例

    需要动态加载的select下拉选项我们往往异步请求后台拿到数据后,对下拉选进行拼接,这个繁琐的步骤已经在reload方法中做好了,我们只需要传递正确的数据就可以完成,下面举个例子,假设我们使用jquery的ajax获取后台数据:

    我们代码需要这么写:

    $.ajax({
        url: url,
        type: type ,
        data: param,
        success: function (res) {
            //data中如果是[{value: 1,text: "薯片"}]格式与字段直接传递,如果不是 特别注意  字段名要一致
           //假设我们拿到是数据是[{id: 1,name: "薯片"}]
    
             var data = []
             for(var i = 0;i < res.list.length;i++){
                var obj ={};
                obj.value=res.list[i].id;
                 obj.text=res.list[i].name;
                data.push(obj);
             }
    
             selectMultip.reload(id, data,setData);
    
        },
       
    })

     


    标签属性说明:

    multip:select标签上的属性,用来标识此标签为下拉多选

    tip:select标签上的属性,用来提示用户为多选框如图:

    choose:设置默认选中项,在option标签上添加此属性即可。注意:此属性可能在ie8以下版本不支持(没有亲自测试)


    2019.11.30更新日志:对版本进行全面升级,并且增加动态数据渲染功能,取值/赋值/设置默认值 将更加简单方便,适用于联动等场景,并且修复隐藏bug,代码更加健壮。可以将此称之为selectMultip小框架。

    2019.11.24更新日志:解决取值个数不符问题(对之前使用的小伙伴说声抱歉,在用户多次选择取消之后会出现取值不正确的问题,感谢丶奈何亦是泪提出疑问,本人在仔细测试后才发现确实有此bug,第一时间做了更新,文本中的代码是最新代码,大家可以放心使用)

    2019.11.15更新日志:添加属性choose(默认选中),并添加注释方便使用者二次开发。

    如果还有其他需求等,可以留言,好做更新升级哦!其他不足之处,请多指教!

    展开全文
  • Select多选

    2018-10-17 21:09:44
    layer ui大神开发的拓展插件,能够使用select多选选折数据展示
  • C# TreeView 多选

    2021-02-20 14:28:03
    C# TreeView 多选
  • tableView多选

    2015-11-04 18:22:13
    tableView多选 .
  • Android日历多选

    2020-10-16 11:30:26
    Android日历多选
  • weui多选组件

    2018-07-27 15:35:18
    weui多选组件,weui多选组件,weui多选组件,weui多选组件,weui多选组件
  • JQ JS javascript 多选 多选下拉框 select bootstrap-select
  • select2多选设置select多选,select2取值和赋值

    万次阅读 热门讨论 2018-11-05 18:16:55
    select2设置select多选,select2取值和赋值,作为筛选条件的时候,取值相对简单,把选中的id值转为字符串传给后端查询,查询之后会刷新页面,为了在下拉框中显示刚刚选中的值,就需要给select赋值,可以将刚才传给...

    select2设置select多选,select2取值和赋值,作为筛选条件的时候,取值相对简单,把选中的id值转为字符串传给后端查询,查询之后会刷新页面,为了在下拉框中显示刚刚选中的值,就需要给select赋值,可以将刚才传给后端的字符串再传回前端,然后转为一位数组,再赋值给select2就会显示刚刚选中的值,赋值方法:$('#id').val(arr).trigger('change'),id为select的id属性,这里的arr是刚才从后端传回前端的id转成的一位数组。

    select2设置select多选,select2取值和赋值,首先需要引入select2的js文件,select2官网地址https://select2.org/

    //select2html代码设置选项,list为后端查询出来的选项,循环赋值

     <select name="id" id="id" multiple="multiple">
            <option value="0">请选择部门</option>
            <volist name="list" id="vo">
                <option value="{$vo.id}" <eq name="vo.id" value="$id">selected = "selected"                </eq>>{$vo.name}</option>
            </volist>
        </select>


        //可以另外设置一个隐藏的input框来存select选中的id,方便传给后端

     <input type="hidden" id="select_id" name="select_id"/>

    //select2插件初始化

      $("#id").select2({
            language : "zh-CN",
            minimumInputLength : 0,
            placeholder:"可多选",//默认值
            allowClear: true,
        })


        //select2插件赋值 

     var select_id = $("#select_id").val();
        arr = select_id.split(",");//注意:arr为select的id值组成的数组
        $('#id').val(arr).trigger('change');


        //select2多选,取值,在下拉框中选中以后,获取到选择的id值

     $('#id').change(function(){
                var o=document.getElementById('id').getElementsByTagName('option');
                var all="";
                console.log(o[1]);
                for(var i=0;i<o.length;i++){
                    if(o[i].selected){
                        all+=o[i].value+",";
                    }
                }
                
                all = all.substr(0, all.length - 1);//去掉末尾的逗号
                $("#bumen").val(all);//赋值给隐藏的文本框
            })

    select2设置select多选,select2取值和赋值大概就这些了,也是网上找了很多资料,尝试了很多次,因为刚开始不知道$('#id').val(arr).trigger('change');里面的arr是个啥,最开始以为是数据,text,赋值了一些字符串,所以一直没用。

     

    阿里云学生机(24岁以下自动获得学生身份)优惠地址,服务器购买,各种云服务购买:https://promotion.aliyun.com/ntms/act/campus2018.html?userCode=cyn41gba

    腾讯云双十一优惠:
    https://cloud.tencent.com/act/cps/redirect?redirect=1048&cps_key=1f197f58b18ff5752c34467efca408fc&from=console

    展开全文
  • expendlistview 多选

    2014-11-01 15:32:12
    expendlistview 多选 android 自动换行
  • listview多选

    2014-07-24 17:04:19
    android listview 记录多选,全选
  • UITableView多选

    2012-03-23 09:41:04
    UITableView多选
  • android相册多选功能,可以多选,类似微信的发图片功能.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • DropDownList下拉框多选

    2018-09-07 13:32:54
    DropDownList下拉框多选demo
  • Angular实现下拉菜单多选 写这篇文章时,引用文章地址如下: http://ngmodules.org/modules/angularjs-dropdown-multiselect http://dotansimha.github.io/angularjs-dropdown-multiselect/#/ ...

    Angular实现下拉菜单多选

    写这篇文章时,引用文章地址如下:

    http://ngmodules.org/modules/angularjs-dropdown-multiselect

    http://dotansimha.github.io/angularjs-dropdown-multiselect/#/

    AngularJS Dropdown Multiselect

    This directive gives you a Bootstrap Dropdown with the power of AngularJS directives.

    Features

    Based on Bootstrap's dropdown.

    jQuery is not necessary.

    Seperated your data and the selection data. no modification to the data made.

    Built-in search.

    Complete control on the selected items model to fit it to your requirements.

    Two view options: normal list and checkboxes.

    Pre-selected values.

    Limit selection count.

    Grouping items by property.

    Callback events.

    Demo

    http://dotansimha.github.io/angularjs-dropdown-multiselect/

    Dependencies

    required: AngularJS >= 1.2, Lodash >= 2, Bootstrap >= 3.0

    Make sure to add the dependencies before the directive's js file.

    Note: Bootstrap JS file is not needed for the directive, it just uses the CSS file.

    Install

    Download the files

    Using bower:

    Just run bower install angularjs-dropdown-multiselect

    Manually: You can download the .js file directly or clone this repository.

    Include the file in your app

    <script type="text/javascript" src="angularjs-dropdown-multiselect.js"></script>.

    You can also use the minfined version (angularjs-dropdown-multiselect.min.js).

    Include the module in angular (i.e. in app.js) - angularjs-dropdown-multiselect

    Usage and Documentation

    See the documentation and examples in the GitHub pages: http://dotansimha.github.io/angularjs-dropdown-multiselect/

    由以上英文文档可以得知,若使用angularjs-dropdown-multiselect,首先需要在index.html中引入AngularJS >= 1.2, Lodash >= 2, Bootstrap >= 3.0,如下所示:

    <script src="js/angularjs-dropdown-multiselect.js"></script>

    <script src="js/lodash.min.js"></script>

    并在app.js模块中添加依赖angularjs-dropdown-multiselect。如下所示:

    var routerApp = angular.module('routerApp', ['ui.router''ngCookies''ngTable''angularjs-dropdown-multiselect''MedListModule']);

    yh_set_dtl.html核心代码如下:

    <div style="float:left">优 惠 类 型:</div>

    <!-- Demo -->

    <div ng-dropdown-multiselect="" 

     options="yhctlModelOptions" 

     selected-model="yhctlModel"

     checkboxes="true">

    </div>

    controllers.js代码如下:

     $scope.yhctlModel = [];

     

     $scope.yhctlModelOptions = [ 

                                  {id: 1, label: '限定用户'}, 

                                  {id: 2, label: "限定商家"}, 

                                  {id: 3, label: "限定使用次数"},

                                  {id: 4, label: "限定药品"}, 

                                  {id: 5, label: "与其它优惠共享"}];

    效果图如下:

     

    展开全文
  • gridview多选

    2015-05-04 11:33:05
    实现多选效果,只改变背景,保存选中item的内容。
  • Jquery多选控件

    2018-12-20 14:04:40
    Jquery多选控件,非常的好用,如果你的前端需要树形多选,就选他
  • 多选日历控件

    2018-06-25 21:14:16
    多选的日期控件,支持日期多选,清除选择功能,放心使用
  • 多选下拉框选择

    2018-05-06 09:47:15
    支持多选的下拉框、轻松搞定下拉单选,多选,自定义下拉框样式
  • Select多选.rar

    2019-07-18 15:15:54
    Select多选
  • React多选-源码

    2021-02-20 13:15:53
    React多选 为React构建的复选框驱动的多选组件。
  • 相册多选源码

    2017-05-23 13:27:19
    相册多选图片

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,301
精华内容 10,520
关键字:

多选